What you’re seeing
If you use WordPress’s one-click updater, you’ve probably met this screen: the whole site — admin included — replaced by a single line, “Briefly unavailable for scheduled maintenance. Check back in a minute.” It usually stays for the few seconds the upgrade takes. If it doesn’t go away, here’s what happened and how to fix it in under a minute.
Why it happens
During an automatic update, WordPress drops a .maintenance file in the blog root to put the site into maintenance mode, so visitors don’t stare at half-upgraded, broken pages. That’s a good feature — but if the update is interrupted (slow host, PHP timeout, network blip, FTP credentials prompt nobody answered), the file never gets deleted and the site stays locked for everyone, including you.
The fix
Delete the .maintenance file from the site root (the same directory as wp-config.php):
# via SSH
rm /path/to/your/site/.maintenance
# no SSH? delete it with your hosting file manager or FTP client
# note: files starting with a dot are hidden — enable "show hidden files"
Reload the site. If the update didn’t finish, WordPress will show its usual “a new version is available” notice on the dashboard — run the update again. No notice means the update actually completed and you’re done.
When the file isn’t there
When I hit this in 2011, .maintenance was nowhere to be found — and the site was still locked. The culprit was a half-finished plugin update:
wp-content/upgrade/<plugin_name>.temp
Deleting that leftover .temp folder (for whichever plugin I’d last tried to update) brought the site back immediately. So the diagnostic order is:
- Stuck on the maintenance screen? → delete
.maintenancein the site root. - No
.maintenancefile but still locked? → look for a*.tempfolder underwp-content/upgrade/and delete it. - Still stuck? → check
wp-content/upgrade/permissions (the web server must be able to write there), then try the update again.
Reading this in 2026
Nothing here has changed — WordPress still uses the same .maintenance mechanism, and the stuck-update failure mode is identical. A few modern notes:
- WP-CLI is the cleaner path.
wp core update(andwp plugin update --all) runs updates from the shell, doesn’t rely on the web-server write dance, and doesn’t leave maintenance mode hanging the way a timed-out HTTP request can. If updates break repeatedly, do them over SSH. - The message can be a symptom, not the disease. If updates routinely time out mid-flight, the usual suspects are a low PHP
max_execution_timeand the upgrade routine needing FTP credentials it isn’t getting. SetFS_METHODto'direct'inwp-config.phpwhen your filesystem layout allows it. - You can force maintenance mode manually by creating your own
.maintenancefile with a$upgradingtimestamp — useful when you’re running migrations and want the friendly notice instead of errors.
References (verified live): Common WordPress errors (includes a "Maintenance Mode Following Upgrade" section) and the WordPress Advanced Administration handbook.