EE 3.5.16 MSM with 3 sites.
3 pages on a new site that has been added to our MSM display the ‘System Offline’ message even though I am logged in as a super admin, other pages are visible as they should be.
I f I put the site online all pages are visible.
If I create a new page sometimes it will visible to admins when the site is offline, sometimes a new page returns the offline message.
I’ve looked over the content and templates and can’t see anything different.
Any ideas welcome
That’s baffling. Sounds like it’s seeing you as not logged in. No chance the difference is the subdomain, is there? So www.mysite.com pages show, but mysite.com pages don’t- or vice versa? That would be cookie domain.
Try turning browser tools on and checking the headings on a page that works and one that doesn’t- see if that suggests anything useful.
I was thinking that www is a subdomain- if you login on it, if you don’t have a cookie domain set, you won’t be seen as logged on on mysite.com (without the www).
It sounds like the page works fine with the site online, and the only reason I can think for displaying that offline message is the system sees you as logged out. That could happen going from www.mysite.com to mysite.com.
I won’t totally discount some sort of cache or even a load balanced server with a slight time difference, resulting in being seen as logged out.
If you’ve got the same install on multiple servers and it only happens on one, that does suggest something environmental might be at play.
It’s weird- I don’t recall running into it before.
I’ve replicated it locally and tried a bit of debugging.
The problem seems to be around line 189 in
/system/ee/EllisLab/ExpressionEngine/Core/Core.php
‘call_user_func_array’ doesn’t return anything when the site is offline, even if I var_dump it.
I tried adding the following:
$controller = 'EE Object'
$method = 'index'
$params = array()
if ( is_callable($controller) ) {
call_user_func_array(array($controller, $method), $params);
} else {
echo 'here';
}
it seems that it’s not callable.
No, I don’t think so. Not with it only affecting 3 pages.
If it were me, I’d start debugging in system/ee/legacy/controllers/ee.php - just var_dump some debug where it’s defining $can_view_system and make sure it’s TRUE for the pages that don’t show.
I’d make sure of that before following it down the line to Core.php. And I’d probably have a page that shows and a page that doesn’t open side-by-side and compare the dumped debug.
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.