WordPress 7.1 Broke My Site: Known Issues and Fixes
Trouble after updating to WordPress 7.1? See what 7.1 changed, which bugs 7.1.1 fixed, how to prove the update is to blame, and how to roll back safely if you must.
A critical error, a white screen, a database error or a login loop.
Do this first
Diagnose it
WordPress errors read alike but point to very different problems. Match the exact text first.
| Message | What it means |
|---|---|
There has been a critical error on this website. | A PHP fatal error, caught by the WordPress error handler (since version 5.2). The real error is in the log. |
| A blank white page | A fatal error with error display off, often memory exhaustion or a crash before the handler loads. |
Error establishing a database connection | WordPress cannot log in to MySQL or MariaDB. |
Briefly unavailable for scheduled maintenance. Check back in a minute. | An interrupted update left a .maintenance file in the site root. |
Allowed memory size of 268435456 bytes exhausted | PHP hit its memory limit (268435456 bytes is 256 MB). |
Maximum execution time of 30 seconds exceeded | A request ran longer than PHP allows. |
Sorry, you are not allowed to access this page. after a migration | The user roles no longer match the database table prefix. |
Updating failed. The response is not a valid JSON response. | The block editor cannot reach the REST API. |
The link you followed has expired. on upload | The file is larger than upload_max_filesize or post_max_size. |
Another update is currently in progress. | A stale update lock is still in the database. |
| Login page reloads with no error | A login loop: cookie, URL or HTTPS mismatch. |
These checks run in an SSH terminal, inside the site’s folder (the one that contains wp-config.php). Your hosting panel shows the SSH login details.
1. Find out whether WordPress itself loads.
wp core version
wp core version --skip-plugins --skip-themes
--skip-plugins and --skip-themes load WordPress without any plugin or theme code. If the first command prints the same fatal error and the second prints a version number, a plugin or the theme is the cause, not core.
2. See what changed most recently.
ls -lt wp-content/plugins wp-content/themes | head -n 15
-lt sorts by last modified time, newest first. The folder at the top whose date matches when the error started is your first suspect.
3. Check the memory limit WordPress actually gets.
wp eval 'echo ini_get("memory_limit"), " / ", WP_MEMORY_LIMIT, "\n";'
The first number is the PHP limit set by the server, the second is the limit WordPress asks for. WordPress cannot go above the server value. If the error says memory exhausted and these show 128M or less, memory is a real candidate.
4. Test the REST API, for the JSON error.
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/wp-json/
Run this one on your own computer, replacing example.com with your domain. Good: 200. A 403 means a security plugin or firewall blocks it; a 404 means the rewrite rules are broken (resave Settings, Permalinks).
5. Check the database.
wp db check
Good: every table reports OK. A table marked as crashed explains database errors on some pages but not others.
wp-content/plugins/PLUGIN_NAME/ or wp-content/themes/THEME_NAME/, and the time matches an update. Fix: disable that plugin or roll it back to the previous version, then report it to the developer.Call to undefined function create_function() or each(), both removed in PHP 8.0, with no update on your side. Fix: update or replace the old code. Switch PHP back only as a short stopgap, because older versions stop getting security fixes.Allowed memory size ... exhausted. The file named is where memory ran out, not always what used it. Fix: set define( 'WP_MEMORY_LIMIT', '256M' ); in wp-config.php. If it still runs out at 512 MB, find the leak instead of raising the limit again.PHP Parse error: syntax error, unexpected with a file and line number, often functions.php or a snippets plugin. Fix: undo the edit over SFTP. Editing in the dashboard gives you no way back if it breaks.Another update is currently in progress. Fix: delete .maintenance from the site root; clear the lock with wp option delete core_updater.lock; reinstall the half-updated plugin.wp-login.php. Fix: make the WordPress Address and Site Address match the real URL exactly, check any COOKIE_DOMAIN line in wp-config.php, and exclude wp-login.php from caching.PREFIX_user_roles and the user meta keys PREFIX_capabilities must use the same prefix as $table_prefix in wp-config.php.Could not create directory. Fix: ask your host to set ownership to the site’s user. Avoid setting folders to 777.wp core verify-checksums passes, core is fine.Did this fix it?
Still stuck? Start again from what you can see in the Emergency Room.
The full fix
Trouble after updating to WordPress 7.1? See what 7.1 changed, which bugs 7.1.1 fixed, how to prove the update is to blame, and how to roll back safely if you must.
Problems after WordPress 7.0? Learn what changed (PHP 7.4 minimum, iframed editor, pattern locking), which bugs 7.0.1 fixed, and how to roll back or report a bug.
Problems since WordPress 6.9? See the changes that broke sites (email sender, post navigation loops, classic theme styles), what 6.9.1 to 6.9.4 fixed, and how to roll back.
PHP stopped a request because it hit the memory or time limit. Read the exact error, check the real limits, raise them in the right place for your panel, then find what keeps hitting them.
UpdraftPlus backups that never finish, All-in-One WP Migration imports stuck or blocked by upload size, restores that fail halfway. Find the real limit from the log and get a working backup or move.
A calm, repeatable update routine for WordPress: what auto-updates and core rollback protection really do, what order to update in, what to test afterward and how to roll one plugin back.
Pages full of [vc_row] or [fusion_builder_container] codes, a builder that will not load, or updates you cannot get because nobody has the license. Identify the builder, get it running and sort out licensing on a site you took over.
Search the field manual
Or jump straight to a symptom
Press / to search from any page, Esc to close