WordPress Errors
WordPress stuck in maintenance mode
Last reviewed
Direct answer
WordPress gets stuck in maintenance mode when an update is interrupted and leaves a leftover `.maintenance` file in your site root — delete that one file (after confirming the update actually finished) and the site returns immediately. It is almost never a real ongoing update; it is a stale marker file the platform forgot to remove.
“Briefly unavailable for scheduled maintenance” is supposed to disappear in seconds once an update completes. When it does not, WordPress is still reading a `.maintenance` file that update routines write at the start of every core, plugin, or bulk update and are supposed to delete at the end. This guide shows how to confirm the update finished, remove the stuck marker safely, and prevent the next update from hanging the same way.
Key facts
Verifiable numbers and definitions — each claim links to its source.
- WordPress update docs say a failed update can leave a .maintenance file in the WordPress root that keeps the failed-update / maintenance nag visible until you delete it. (Updating WordPress)
- Manual recovery after a broken auto-upgrade explicitly includes removing .maintenance over FTP before finishing the update. (Updating WordPress)
- One-click updates depend on file ownership: when WordPress cannot write files as the web process user, it asks for FTP credentials instead of updating silently. (Updating WordPress)
- WordPress hardening docs cover correct file permissions so the updater and site process can read and write what they need without overly open rights. (Hardening WordPress — File permissions)
What the error means
Every time WordPress runs an update — core, a single plugin, or a bulk batch — it writes a small `.maintenance` file to the site root and shows visitors the “briefly unavailable” message while files are swapped in. On success, WordPress deletes that file automatically and the site returns to normal. If the update process is killed midway — a timeout, a fatal error, a lost connection, a host resource limit, or you closing the browser tab during a bulk update — the file never gets cleaned up. WordPress has no way to know the update actually finished, so it keeps showing the maintenance screen indefinitely, even though the underlying update may have completed successfully or only partially.
Common symptoms
- Every page, including wp-admin, shows “Briefly unavailable for scheduled maintenance. Check back in a minute.”
- The message persists for minutes or hours instead of clearing in seconds
- The screen appeared right after clicking “Update Now” on core, a plugin, or during “Update All”
- Refreshing or waiting does not clear it, even well past normal update time
- wp-admin, wp-login.php, and the public site are all equally blocked
- The site was mid-update when a network drop, browser close, or host timeout occurred
- A support agent or host status page confirms no active platform-wide maintenance is running
Most likely causes
- 01 An update was interrupted (timeout, connection drop, or closed tab) before WordPress deleted `.maintenance`
- 02 A host resource limit (memory, execution time) killed the update process mid-run
- 03 A plugin or theme update triggered a fatal error that halted the update script before cleanup
- 04 A bulk “Update All” ran multiple items and one item’s failure left the marker file behind
- 05 A slow file system or low disk space caused the update to stall partway through
- 06 Manual FTP file changes made during an update collided with WordPress writing update files
- 07 A caching or security plugin intercepted the update request and never let it complete cleanly
What changed before the problem started
- You clicked “Update Now” on WordPress core, a plugin, or theme
- You ran “Update All” on multiple plugins at once
- A page timeout, lost connection, or accidental tab close happened mid-update
- Host CPU, memory, or execution-time limits were hit during the update
- Low disk space or a slow file system delayed file writes past the expected window
Troubleshooting steps
- 01
Wait a full 60 seconds, then check from a fresh browser window
Genuine update-driven maintenance mode almost always clears within a minute. Open a private/incognito window and reload once — this rules out a cached page making a fixed problem look ongoing.
- 02
Connect via FTP or File Manager and look for `.maintenance` in the site root
This is a hidden file, so enable “show hidden files” in your FTP client or File Manager. It sits alongside `wp-config.php` and `wp-content` in your WordPress root — not inside a subfolder.
- 03
Open `.maintenance` to check what it contains before deleting
It normally contains a single PHP line like `<?php $upgrading = time(); ?>` with a timestamp. If that timestamp is more than a few minutes old, the update has clearly stalled and the file is safe to remove.
- 04
Delete or rename the `.maintenance` file
Delete it outright, or rename it to `.maintenance.bak` if you want a fallback copy first. The site should return immediately on the next page load — no cache clear or server restart needed.
- 05
Confirm the interrupted update actually finished
Go to Dashboard → Updates and check the version numbers for core, the plugin, or theme you were updating. If it looks incomplete, re-run the update now that the marker file is gone rather than assuming it finished.
- 06
Check the plugins and theme list for anything left half-installed
An interrupted bulk update can leave one plugin fully updated and another partially written. Compare installed versions against what you expected, and reinstall any plugin whose files look truncated or missing.
When to stop troubleshooting
Call for help if you cannot find or access `.maintenance` via FTP/File Manager, deleting it does not clear the screen, the update left plugins or core files visibly broken or half-written, or this is the second time the same update has stalled. Do not keep re-running an update that has already failed twice without knowing why.
Information to collect before requesting help
- 01 Which update was running (core version, plugin/theme name and version)
- 02 Whether it was a single update or “Update All” on multiple items
- 03 How long the maintenance screen has been showing
- 04 Whether the `.maintenance` file exists in the site root and its timestamp
- 05 Any PHP fatal or memory errors in debug.log around the time it stalled
- 06 Host resource limits (memory_limit, max_execution_time, disk space)
- 07 Whether wp-admin is reachable at all or only the public site
How a professional repairs the problem
A technician confirms the update state, removes the stale `.maintenance` marker, verifies core/plugin/theme files against the expected versions, and re-runs any incomplete update individually while watching logs. If the same update keeps stalling, we raise the relevant PHP or host limit, isolate the plugin causing the failure, and confirm a clean update cycle before closing out.
Frequently asked questions
Is it safe to just delete the `.maintenance` file? +
Will deleting `.maintenance` undo my update? +
Why did this happen after I closed my browser during an update? +
How can I find a hidden file like `.maintenance` in File Manager? +
Should I re-run the update after removing the file? +
Can a plugin cause this without any update running? +
Repair dispatch
Still Need Help Fixing Your Website?
If you are not comfortable editing website files, changing server settings, repairing a database, or troubleshooting a live website, professional help may prevent additional damage or downtime. We will review the problem before accepting the repair.
- You will receive a clear explanation of the likely cause.
- We will tell you if the issue falls outside our repair scope.
- No additional work will be performed without approval.
- A backup should be created whenever access and website condition allow it.
Do not share passwords through an unencrypted contact form — use Password Pusher (self-destructing link). Prefer a dedicated Rescue 404 admin account, not your personal owner login; if you cannot create one yet, we will add ours after repair.