[19-Jan-2026 04:20:03 UTC] PHP Deprecated: preg_replace_callback(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /home/mtnempco/public_html/---------.com/inc/classes/BxDolTemplate.php on line 3177
Safari error: ReferenceError: "Can't find variable: oTimelineViewOutlinePublic" followed by several lines concerning the gzip file.
Even after turning off the new Wiki app, the problem remains. I cleared all the caches, including browser.
15.0.0-A2. Anything come to mind?
- 292
Comments
Hello @banister !
After the performed tests we've found that the deal wasn't connected with the Wiki app at all. It was in the templates/designbox_0.html file and after the replacement to the default one, it seems works fine.
M
Yes—this symptom set is now a known pattern in UNA 15.0.0-A2, and (critically) it is typically not caused by the Wiki app itself.
In the UNA community thread that matches your exact errors, UNA staff reported the root cause was a modified/corrupted template file:
templates/designbox_0.htmlThat aligns with your Safari console error:
Can't find variable: oTimelineViewOutlinePublicusually means the Timeline “outline public” JS payload never got emitted into the page, which often happens when the designbox wrapper template (the thing that renders blocks) is broken or missing expected placeholders. Once that wrapper fails, the homepage can render partially, but the required JS objects never get defined.The PHP deprecation warning is a secondary signal:
preg_replace_callback(): Passing null ... in BxDolTemplate.phpindicates the template engine is receiving null content for a subject it expects to be a string—commonly because a template include returned nothing/invalid, which is consistent with a damageddesignbox_0.html.What I would do (in order)
1) Restore
designbox_0.htmlto the stock/default versionOptions (pick the one you can do fastest):
designbox_0.html.designbox_0.html.After restoring, proceed to cache rebuild below.
2) Hard-clear UNA caches plus aggregated JS/CSS artifacts
You already cleared caches from Studio/browser; do the server-side artifacts too (these are the ones that commonly preserve the broken JS bundle):
*.gzcompiled assets).If you tell me your active template name (e.g., Protean/custom) and your cache directories present under webroot (a quick
lsoutput of/cache*and/tmpis enough), I’ll give you exact paths to purge safely.3) Re-test homepage with browser devtools open
Confirm that:
Content-Encoding: gzipheader (if applicable),oTimelineViewOutlinePublicis now defined.Why “turning off Wiki” didn’t revert it
App install/enable flows can trigger template rebuilds and cache regeneration; if your
designbox_0.htmlwas already non-stock (or was inadvertently altered), the install just surfaced the problem. Disabling the app won’t revert template files or the cached bundles.If you paste the first ~30 lines of your
templates/designbox_0.html(or tell me whether it’s a custom template and what it’s called), I can tell you exactly what placeholder/markup commonly breaks Timeline block rendering and what the default file should contain at a structural level.I'll be around...
Much thanks, Gentlemen! This is quite interesting. I am learning many things.
Your solutions will benefit others, too.
When the page began to work again with the Timeline, I thought (mistakenly) it may have been a Cloudflare cache issue - which can actually be regional.
When Leonid first examined the home-page on the other side of the world, it only displayed a certificate error with no UNA content at all. This SSL issue had been fixed 2 days prior.
Cloudflare has a Developer option to turn it off. But this does not flush the cache. Many have reported that the Cloudflare cache gets corrupted on rare occasions.
The part which amazes me is how certain boxes became unchecked regarding who had permission to view the Timeline. This has occurred twice in the last month. I have now changed this Timeline "view" setting to: ANYONE.
But these issues were not the real problem...
The same issue occurred about a week later. And I discovered that the previous issue somehow resolved itself. I have cleared all caches - cloudflare, UNA, and browser. But there is something in the gzip file which produces this error: ReferenceError: Can't find variable: oTimelineViewOutlinePublic
Micheal, do you have ideas as to how this issue previously fixed itself and why failure occurred again? I have a sister-UNA site on the same server with identical settings and it works fine.
Thank you!
M
Got it — and I agree with your conclusion: Cloudflare + “Timeline view” permissions can be red herrings. They can explain what you saw, but they usually aren’t the root cause of “Timeline vanished / JS object missing / homepage blocks not rendering.”
Here’s what does fit everything you described (including Leonid seeing only a cert error while you thought SSL was already fixed):
1) Why @LeonidS saw a certificate error after you “fixed SSL.”
With Cloudflare in front, different visitors can hit different Cloudflare edges, and edges can behave differently for a while when:
Even if you fixed origin SSL 2 days earlier, an edge/client path can still present errors depending on:
But: that still doesn’t explain the Safari JS error you saw (
oTimelineViewOutlinePublic)—that points to UNA output not being emitted properly.2) The “unchecked permissions boxes” mystery
Those checkboxes don’t spontaneously change. If they changed twice, something is writing to the ACL tables.
The usual culprits
-*while leaving content currentHow to prove what changed (and prevent guessing)
Take a snapshot of the relevant ACL state now, so next time it happens you can diff it in 10 seconds.
Run these and save outputs:
-- What the Timeline "view" action is called in your DB SELECT * FROM sys_acl_actions WHERE Module = 'bx_timeline' AND Name LIKE '%view%'; -- Which membership levels are allowed for that action SELECT m.* FROM sys_acl_matrix m JOIN sys_acl_actions a ON a.ID = m.IDAction WHERE a.Module = 'bx_timeline' AND a.Name LIKE '%view%';If it flips again, run the same queries and compare. That tells us exactly what was toggled and whether it was one action or multiple.
Hardening option (simple + effective)
If you’re on MySQL and comfortable with it, the most reliable “who touched this” method is an audit trigger on
sys_acl_matrixto log updates/inserts/deletes to a small audit table. That will capture the exact time and change. (If you want, I’ll give you a clean trigger + log table.)3) Why this still wasn’t the real problem
Your earlier Safari error:
is almost always caused by UNA failing to output the Timeline block JS into the page.
That typically happens when:
preg_replace_callbackreceivingnull)So: setting Timeline “view” to ANYONE can make the block “eligible,” but if the template/block pipeline is failing, it still won’t render correctly.
4) The fastest way to isolate the actual root cause (no guesswork)
Do these three checks in order:
A) Confirm whether UNA is emitting Timeline markup at all
View source on the homepage and search for:
oTimelineViewOutlinePublicbx_timelineTimelineblock container markupIf it’s absent, that’s a rendering/build issue, not permissions.
B) Confirm the Timeline block exists and is enabled on that page
In Studio → Pages (or Layouts, depending on your build), verify the homepage still has the Timeline block, and it’s not hidden for guests.
C) Eliminate Cloudflare as a confounder (properly)
“Development mode” is not enough because it doesn’t necessarily bypass everything you care about.
Temporarily create a Cloudflare rule to Bypass cache for:
//index.php*/page/*(whatever your homepage route is)/cache_public/*(if you’re serving UNA assets from there)*.js/*.cssthat UNA aggregatesThen test from:
?nocache=1appendedThis confirms whether Cloudflare is amplifying the symptom.
5) What I need from you to pin it down in one pass
Paste just these (no secrets):
oTimelineViewOutlinePublic(first 10–20 lines)SELECT * FROM sys_acl_actions WHERE Module = 'bx_timeline' AND Name LIKE '%view%';and this:
SELECT m.* FROM sys_acl_matrix m JOIN sys_acl_actions a ON a.ID = m.IDAction WHERE a.Module = 'bx_timeline' AND a.Name LIKE '%view%';With that, I can tell you whether the real problem is:
If you want to skip all back-and-forth: paste the Safari console chunk + those two SQL results, and I’ll give you the exact fix + the preventative hardening steps.