How to recover from a failed WordPress update
What to do when a WordPress update stalls halfway, leaves a maintenance message stuck on, or breaks the site outright.
A WordPress update fails in one of two ways. Either it stops partway through and leaves the site showing "Briefly unavailable for scheduled maintenance. Check back in a minute." forever, or it completes but leaves the site broken — a white screen, a fatal error, or a plugin that no longer works with the new core version. Both are recoverable, and neither touches your database, so nothing you have written or configured is at risk.
The maintenance message that will not go away
When WordPress updates, it creates a file called .maintenance in your web root to show that message and stop visitors hitting a half-updated site. It deletes that file automatically once the update finishes. If the update is interrupted — the connection drops, PHP hits its execution time limit, or the process is killed for using too much memory — the file is left behind and WordPress never gets the chance to remove it.
Connect over FTP, SFTP, or your control panel's file manager, go to the web root — the folder containing wp-config.php — and delete the file named .maintenance. It is a dot file, so make sure hidden files are visible in your FTP client or file manager first.
Once it is deleted, reload the site. If the update genuinely finished before it was interrupted, the site comes back exactly as expected. If it did not finish, you will now see the real underlying error instead of the maintenance message, which is progress — you cannot fix an error you cannot see.
If the update stalled and did not finish
Sometimes deleting .maintenance reveals that only some of WordPress's core files were replaced. This most often happens on a slow connection, on an account close to its disk quota, or when a security plugin blocks the update process mid-write.
-
Check your disk space
Open your control panel's usage or statistics section and confirm the account is not full. An update that runs out of room to write new files fails silently from WordPress's point of view — it looks like a normal failure rather than a disk error.
-
Re-run the update from wp-admin
Go to Dashboard → Updates and try again. If the connection was simply slow the first time, a second attempt on a stable connection often just works.
-
Replace the core files by hand if it still fails
Download the exact version of WordPress you are running from wordpress.org, and upload the
wp-adminandwp-includesfolders over the top of your existing ones, overwriting everything. Do not upload thewp-contentfolder from the fresh download — that is where your themes, plugins and uploads live, and overwriting it would delete them. -
Try WP-CLI if you have SSH access
A single command reinstalls every core file to match the version in your database, without touching content:
wp core update --forceFollow it with
wp core verify-checksumsto confirm every core file now matches the official release. See using WP-CLI on your hosting if you have not used it before.
The update finished, but the site is broken
This is a different problem: WordPress itself updated fine, but something built on top of it did not survive the change. It is nearly always a plugin or theme that has not been updated to work with the new core version, or a PHP compatibility issue the new release exposed.
Even a broken site can usually be made worse. If you have a recent backup, this is the moment to confirm it exists before you start deactivating plugins or editing files. See backing up a WordPress site.
Work out which piece broke
- A white screen or a fatal error naming a file inside
wp-content/plugins— a specific plugin is the cause. Deactivate it and the site should return. - A white screen with no useful message — turn on
WP_DEBUGtemporarily inwp-config.phpto see the real error, then follow fixing the white screen of death. - The dashboard works but the front end is wrong — usually a theme, not the update itself.
If you cannot reach wp-admin at all, rename the plugin folder over FTP rather than trying to click anything: connect to your account, go to wp-content/plugins, and rename the folder of the plugin you suspect — for example from problem-plugin to problem-plugin-off. WordPress treats a renamed folder as a missing plugin and deactivates it automatically, without needing a working admin login.
Preventing this next time
- Take a manual backup immediately before updating anything — core, a theme, or a plugin. It is the single change that turns a bad update from an emergency into an inconvenience.
- Update one thing at a time where you can, rather than letting a dozen plugin updates and a core update all run in the same click. If something breaks, you know exactly what caused it.
- Check plugin compatibility notes before a major WordPress release, particularly for anything handling payments, forms or caching.
- Keep at least one recent backup off the account itself, so a problem with the update cannot also take out your only copy of the site.
If you have worked through this and the site is still not right, contact our support team with a description of what you last updated and we will take a look from the server side.
Frequently asked questions
Will I lose content if I fix a failed update this way?
No. Deleting the maintenance file or re-uploading core files does not touch your database, so your posts, pages and settings are untouched. The one exception is if you restore from a backup taken before recent content was added — check the backup date before you restore.
Why did the update fail in the first place?
Usually one of three things: the page timed out before the update finished (slow connection or a large update), the account ran out of disk space partway through, or file permissions stopped WordPress writing to a folder it needed. Checking disk usage in your control panel is worth doing before you try again.
Related reading
Files and database, together — a backup missing either one is not a backup. Three ways to take one, and how to prove it works.
How to fix the WordPress white screen of deathA blank white page with no error message, caused by a plugin, a theme, or a memory limit — and how to work out which one.
How to use WP-CLI on your hostingManage updates, plugins, users and search-and-replace from the command line over SSH, faster than clicking through the dashboard for the same job.
How to update WordPress without breaking your siteBack up, update one thing at a time, and check the site immediately — the order that keeps an update from becoming an outage.