There has been a critical error on this website | November 2nd, 2022
Nothing is worse than seeing your WordPress site down. Been there, I know the feeling. So, today, while I was duing my routine, I checked one of my sites, and BAM: “There has been a critical error on this website.”.
The 1st instinct, knowing that the WordPress version auto-updated to the 6.1 “Misha” version, was to downgrade the PHP from 8.1 to 8.0. Nothing solved… I tried to downgrade to PHP 7.4 version…Again, nothing happened. The error was still there, and the site was still down.
So, I start to investigate the issue. I enabled the “WordPress debug” mode, and find this message:
Fatal error: Uncaught Error: Call to undefined method WP_Textdomain_Registry::reset() in /public_html/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php:139 Stack trace: #0 /public_html/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php(119): WPML\ST\MO\Hooks\LanguageSwitch->resetTranslationAvailabilityInformation() #1 /public_html/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php(73): WPML\ST\MO\Hooks\LanguageSwitch->changeMoObjects() #2 /public_html/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php(48): WPML\ST\MO\Hooks\LanguageSwitch->switchToLocale() #3 /public_html/wp-includes/class-wp-hook.php(310): WPML\ST\MO\Hooks\LanguageSwitch->languageHasSwitched() #4 public_html/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php on line 139"
So, if you get the “There has been a critical error on this website.” WordPress error these days, and you are using the WPML plugin, this is because of the last WordPress 6.1 update. It is a known issue right now, and the WPML’s team is trying to solve it.
What exactly is this error and how can I solve it?
The “There has been a critical error on this website.” is generated due to an internal conflict between WPML (4.5.11 version), String Translation (3.2.2) and the last WordPress version (6.1, “Misha).
So, how to solve it?
Fortunately, there are a few ways to solve this issue:
1. If you can access the WordPress Admin dashboard, try to update both the WMPL, to the last version (4.5.12) and String Translation, to the last version (3.2.3). You have to follow the steps mentioned in the WPML official article about this issue.
2. If you cannot access the admin dashboard, go to your hosting server and try to restore a backup made on November 1st (the WordPress autoupdate to 6.1 arrived this morning, on November 2nd). Depending on your hosting provider, there are many backup features. In my case, I used JetBackup 5.
- deactivate the auto-update feature.
- make the required updates. If you cannot update the String Translation plugin, simply delete it and re-upload the newest version (I posted below the source from where you can get it).
- update the WordPress version to the last one and test your site. Everything should be working fine.
3. If you don’t have a recent backup, you can also try this:
DO A BACKUP BEFORE MAKING ANY CHANGE!
- Access your site through FTP, or through the cPanel’s Site File Manager.
- Go to wp-content/plugins/ and rename the String Translation plugin folder name.
- Do the same thing with the WPML plugin (rename the plugin folder name).
NOTE: You can also entire delete the plugins and reinstall the latest version of them. BUT DO A BACKUP BEFORE IT!
After that, download the fresh plugins from the official source: WPML Downloads
Your site should be fine right now.