Jump to content

Upgrading to 4.6.10 crashes my test site completely


Go to solution Solved by All Astronauts,

Recommended Posts

Hello,

I just tried upgrading my test site to IPB 4.6.10 (twice) and both times I've received the same result: after downloading and extracting the upgrade file(s), my site throws an HTTP Error 500 and is completely unusable.  My only alternative at this point is to restore a backup.

I've read recent posts by people with similar issues involving mismatched apps, but I don't think this is the case for me as I don't even get to the point where it starts updating anything - it's the file extraction process which craps things out.

Anyone else had this (or something like this) happen?

 

Edited by LiquidFractal
Link to comment
Share on other sites

I wish my issues were as simple!  I have a VPS, and apparently the PHP error thrown was the following:

[02-Feb-2022 00:11:35 UTC] PHP Fatal error: Uncaught Error: Class 'IPS\Dispatcher' not found in /XXX/init.php:900
Stack trace:
#0 /XXX/init.php(874): IPS\IPS::monkeyPatch('IPS', 'Dispatcher', '')
#1 [internal function]: IPS\IPS::autoloader('IPS\\Dispatcher')
#2 /XXX/init.php(999): spl_autoload_call('IPS\\Dispatcher')
#3 [internal function]: IPS\IPS::exceptionHandler(Object(Error))
#4 {main}
thrown in /XXX/init.php on line 900

Someone help a brother out?

Link to comment
Share on other sites

  • Solution
Matt
This post was recognized by Matt!

"Appreciate the thorough reply."

All Astronauts was awarded the badge 'Helpful' and 25 points.

There is probably a third-party app that has a hook on \IPS\Dispatcher directly (and not on \IPS\Dispatcher\Front or Admin instead). This is crashing new code IPS has in the init.php method in this latest version. You are a bit stuck until you figure out which app/plugin it is though. 

You'll need to look at core_hooks table, and then look at the 'class' column. You're looking for \IPS\Dispatcher there and NOTHING ELSE. Not \IPS\Dispatcher\Front; not \IPS\Dispatcher\Admin. If you see an entry there that's your app; if it is a plugin id, off to core_plugins you go to find the matching ID number and that's your plugin.

You'll need to set the RECOVERY_MODE constant (true) to stop all the hooks from loading to get access to everything again. You'll need to disable what you found before taking recovery mode off.... but with recovery mode on you don't actually get access to the ACP so you are in a bit of a loop here. You'll probably need access to the DB via phpadmin or something anyways to find what you need anyways (since recovery mode means no ACP etc. etc...) so once you've found your guy you can just set the application off there in that table, same for plugin.

On the off-chance things are still wonky, you may need to hack out the new IPS code in init.php and everything will work again but you'll need to still deal with whatever is crashing out here. If it gets to that point see my post in the dev area (if you have access there) or shoot me a PM.

Link to comment
Share on other sites

Thanks to @Ocean West and @Myr for their input, and to @All Astronauts for the solution!  There was a plugin which needed updating - I had checked it in the Marketplace, and the revisions said something about "errors >=4.6.10" but it said nothing about errors related to upgrading, so I left it.

I assumed it wouldn't make any difference because only the system files were being upgraded and hey, why would any other apps/plugins need to be interacted with anyway?  Oh, did I mention I'm not a developer? :rolleyes:

Anyway, I upgraded the plugin in question and the upgrade ran fine.  Thanks!

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Upcoming Events

    No upcoming events found
×
×
  • Create New...