How to Fix the WordPress Briefly Unavailable for Scheduled Maintenance Error
What "Briefly unavailable for scheduled maintenance" means
You open your WordPress site and instead of your homepage you get a short, almost apologetic sentence: "Briefly unavailable for scheduled maintenance. Check back in a minute." It looks calm, but when it's still there an hour later, it stops feeling brief. The good news is that this is not an error code from your host, and nothing is broken in the usual sense — it is WordPress doing exactly what it was programmed to do. Every time WordPress updates itself, a theme, or a plugin, it drops a tiny file called .maintenance into your site root, and while that file exists, every visitor sees the maintenance message. When the update completes, WordPress deletes the file and the site reappears.
The trouble starts when the update doesn't complete. A PHP timeout on cheap shared hosting, a browser tab closed mid-update, two updates (one automatic, one manual) colliding over the same files, or the server running out of memory — any of these can stop the update before WordPress gets around to deleting .maintenance. And because the file is only removed at the end of a successful update, the stranded file freezes the maintenance message in place. The site is fine underneath; it's just wearing an "under construction" sign nobody took down. This is one of the most common WordPress incidents precisely because it happens on its own, often overnight during automatic updates, and it blocks every page including wp-admin until someone removes the file.
Common causes
- Interrupted automatic update: an automatic core, theme, or plugin update stalled — PHP timeout, server hiccup, or the process was killed — before WordPress could delete the .maintenance file. The number-one cause, and it often strikes overnight.
- Two updates colliding: a manual update triggered while an automatic one was already running. The two updaters fight over the same files, both fail partway, and the maintenance flag gets stranded.
- Slow or underpowered hosting: big updates (major core releases, page-builder plugins) take longer than cheap hosts allow, so the update process is terminated mid-way and the file never gets cleaned up.
- Browser tab closed mid-update: clicking "Update now" and closing the tab doesn't stop the update, but on some setups it ends the process early, leaving .maintenance behind with the update half-applied.
- Incomplete update download: the update package downloaded partially (flaky connection, disk full), so the installer bailed out after creating the maintenance file but before replacing any code.
How to fix "Briefly unavailable for scheduled maintenance" — step by step
Work through these in order. Stop as soon as the site reappears — whatever step fixed it told you what went wrong.
- Wait 10 minutes before touching anything. WordPress shows this message during every core, plugin, or theme update — normally it disappears in seconds. The .maintenance file is created at the start of the update and deleted when it finishes, so a brief flash of the message is harmless and not an error. If you know an update is running in wp-admin right now, do not interrupt it. Wait at least 10 minutes, then check the site in a private or incognito window (your browser may be showing a cached copy). If the message is gone, nothing was ever wrong.
- Delete the .maintenance file over FTP or file manager. If the message persists past 10 minutes, an interrupted update almost certainly left the .maintenance file behind in your site root. Connect with FTP or your host's file manager, enable "show hidden files" (files starting with a dot are hidden by default), and look for .maintenance in the same folder as wp-config.php and wp-admin. Just delete it — nothing else needs to change — then reload the site. In most cases the site comes straight back, and no admin access is needed for this step.
- Clear every cache layer. After deleting the file, some visitors still see the message because a cache captured the maintenance page. Purge your caching plugin's cache from wp-admin (you should be able to log in now), clear your host's server-side cache from the control panel, and purge the Cloudflare cache under Caching > Configuration > Purge Everything if Cloudflare is active. Then hard-refresh with Ctrl+Shift+R (Windows) or Cmd+Shift+R (Mac) and test in an incognito window before concluding anything else.
- Rerun the stuck update from wp-admin/upgrade.php. Deleting .maintenance gets the site back, but the interrupted update itself may be half-applied. Log into wp-admin and go to Dashboard > Updates, and install whatever it lists — core, plugin, or theme. If WordPress offers it, visit yoursite.com/wp-admin/upgrade.php to rerun the database upgrade step that timed out. One clean rerun usually finishes what the interrupted attempt could not, and it recreates and removes the maintenance file properly this time.
- Raise the PHP timeout and memory limits. If the message keeps returning after updates, your updates are timing out rather than failing outright. Ask your host to raise the PHP max_execution_time (300 seconds is comfortable) and the PHP memory limit (256M), or change them in your host's PHP settings panel. Also avoid triggering a manual update while an automatic one is running — two updaters fighting over the same files is a classic way to strand the .maintenance file.
- Restore from backup if the update left damage. If the interrupted update left real damage — half-updated plugin files, or a dashboard full of errors — do not patch files one by one. Restore the pre-update backup your host or backup plugin made (most hosts keep at least one automatic backup), then redo the updates one at a time: core first, then the theme, then plugins, testing between each. Once the site is stable, keep automatic updates enabled for minor releases — they run one at a time and rarely strand the maintenance file.
Did this fix it? Quick checklist
- The .maintenance file is deleted from the site root and the site loads normally
- The stuck update was rerun from Dashboard > Updates (nothing is half-installed)
- All cache layers were purged and the message no longer appears in an incognito window
- PHP max_execution_time is at least 300s and the memory limit 256M or higher (prevents repeats)
If the message clears but your site behaves oddly afterward — missing styles, plugin settings reset, admin notices about failed updates — the update was cut off mid-file-copy and something only half-installed. That's the moment to use the backup path in step 6 rather than keep tinkering: a clean restore followed by one-at-a-time updates takes less time than hunting half-replaced files. And once everything is stable, schedule big updates for low-traffic hours and check the site 15 minutes after any automatic update, so a stranded maintenance file never sits for hours again.
Frequently asked questions
What does “Briefly unavailable for scheduled maintenance” mean?
It is WordPress's built-in maintenance notice, not an error from your host. Whenever WordPress updates core, a theme, or a plugin, it creates a temporary file called .maintenance in your site root, and every visitor sees this message until the update finishes and WordPress deletes the file. Normally it is visible for only a few seconds. Seeing it for minutes or hours means an update started but never finished deleting the file.
Why is my WordPress site stuck in maintenance mode for hours?
The update that put the site in maintenance mode was interrupted — a PHP timeout, a browser tab closed mid-update, two updates colliding, or the server running out of memory. The .maintenance file is only removed when the update completes, so anything that stops the update early strands the file and freezes the message in place. Deleting .maintenance over FTP or your host's file manager clears the message immediately.
Is it safe to delete the .maintenance file?
Yes. The .maintenance file is a single temporary flag file, not part of WordPress itself — it contains one line telling WordPress to show the maintenance message. Deleting it does not change your content, database, settings, or installed files. It is the documented way to clear a stuck maintenance screen, and WordPress recreates the file automatically the next time an update runs.
I deleted .maintenance but still see the message — why?
A cached copy of the maintenance page is the usual cause. Purge your caching plugin, your host's server-side cache, and the Cloudflare cache if you use it, then hard-refresh (Ctrl+Shift+R) or check in an incognito window. If the message still appears after every cache is purged, log into wp-admin and visit /wp-admin/upgrade.php — the database upgrade may still be pending, and completing it clears the message for good.