Added Wiki app. Then the home-page Timeline content disappeared.
[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?
-
-
·
LeonidS
- ·
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.
-
·
LeonidS
-
- · Michael Newton
- ·
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:
- specifically:
templates/designbox_0.html - fixing action: replace it with the default/original version.
That 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):
- If you have backups / git: restore only that file.
- If you can switch templates: temporarily switch to the default template in Studio to confirm Timeline returns. If it does, the problem is your active template’s
designbox_0.html. - Copy the default file from a clean UNA distribution of the same branch/build (or from the default template folder) over your current template’s
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):
- Clear via Studio (again) after restoring the file.
- Then remove the aggregated/minified assets from the filesystem, so UNA regenerates them (exact folder names vary by install, but you’re targeting the cached JS/CSS and any
*.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:
- the Timeline JS file(s) are loading (200, not 404/500),
- the gzip file request is returning the correct
Content-Encoding: gzipheader (if applicable), - and
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...
-
- · banister
- ·
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!
-
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!
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:
- SSL mode is misaligned (e.g., Flexible vs Full/Strict) with the origin
- the origin cert was replaced recently and some edges or clients still fail validation
- there’s a cached redirect or cached HTML response being served from an edge
- a “custom hostname / page rule / transform rule” differs by hostname (www vs apex)
Even if you fixed origin SSL 2 days earlier, an edge/client path can still present errors depending on:
- which hostname Leonid hit (www vs non-www)
- SNI / chain / intermediate issues
- Cloudflare edge route at that moment
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
- Studio → Permissions import / “reset to defaults” (sometimes triggered implicitly during app install/upgrade)
- App install/enable that runs install scripts which reapply default ACL for that module
- Switching templates / language packs / rebuild routines that indirectly re-run permission set logic
- A rare but real one: database restore of only some tables (or an “optimization” script) that rolls back
-*while leaving content current
How 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:
Can't find variable: oTimelineViewOutlinePublicis almost always caused by UNA failing to output the Timeline block JS into the page.
That typically happens when:
- a template wrapper (often a designbox template) is broken/missing expected markers
- the block rendering pipeline returns null (which matches your PHP deprecation:
preg_replace_callbackreceivingnull) - a cached/minified JS bundle is stale/bad, so the object never gets defined
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 markup
If 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)- any
*.js/*.cssthat UNA aggregates
Then test from:
- a private/incognito browser
- a different network (cell hotspot)
- and with
?nocache=1appended
This 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):
- The exact Safari console lines around
oTimelineViewOutlinePublic(first 10–20 lines) - The UNA “view source” snippet around where Timeline JS should be (or confirm it’s missing)
- Output of this:
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:
- template/designbox rendering (most likely given the null + missing JS object),
- cached aggregated JS/CSS,
- page block layout corruption,
- or an ACL/permissions reset being triggered by install scripts (explaining the checkbox flips).
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.