WPThumbs
Themes Plugins By purpose By industry Best-of lists Fix it guides
Errors & downtime Beginner 2 min read

How to Fix a WordPress Site Stuck in Maintenance Mode

"Briefly unavailable for scheduled maintenance" that never ends is a single leftover file. Here is how to remove it and, more importantly, clean up what caused it.

Updated 29 August 2026

When WordPress updates a plugin, theme or core, it creates a file called .maintenance in the site root and shows every visitor "Briefly unavailable for scheduled maintenance. Check back in a minute." When the update finishes, that file is deleted.

If the update is interrupted — a PHP timeout, a browser tab closed, a connection dropped — the file survives and the site stays offline indefinitely.

Delete the file

  1. Connect over SFTP or open your host's file manager.
  2. Go to the WordPress root — the folder containing wp-config.php, wp-content and wp-admin.
  3. Enable "show hidden files". The leading dot in .maintenance hides it in most clients, and this is the step people miss.
  4. Delete .maintenance.
  5. Reload the site.

That is the fix. The site returns immediately.

Now finish what was interrupted

Deleting the file does not complete the update — it just stops WordPress advertising that one is in progress. Whatever was being updated may now be half-installed, which causes subtler breakage later.

  1. Log into wp-admin and open Dashboard → Updates.
  2. Re-run the update that failed.
  3. If a plugin now misbehaves, delete and reinstall it. Deleting a plugin through the dashboard does not remove its settings from the database, so you normally lose nothing.
  4. If core was updating, use Dashboard → Updates → Re-install version x.x to restore a clean set of core files.

Why the update failed in the first place

Fixing the symptom without the cause means you will be back here. The usual reasons:

  • PHP max execution time too low. Updating several plugins at once on a slow disk can exceed 30 seconds. Raising max_execution_time to 120 helps; updating in smaller batches helps more.
  • Memory limit. Unpacking a large theme needs headroom. define( 'WP_MEMORY_LIMIT', '512M' ); in wp-config.php is a reasonable baseline.
  • Closing the tab. The update runs in that request. Closing the browser kills it. Let it finish.
  • Filesystem permissions. If PHP cannot write to wp-content, updates fail part-way. Directories should be 755 and files 644, owned by the user PHP runs as.
  • Disk full. No space means the archive cannot be extracted. Check quota before large updates.

If the site is still down after deleting the file

Then maintenance mode was masking a second problem, most likely a fatal error from the partially-updated code. Turn on the debug log and read it:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

The last entry in wp-content/debug.log will name the extension to reinstall.

Avoiding it next time

  • Update in small batches — core alone, then plugins in groups of three or four.
  • Take a backup immediately before updating, not weekly.
  • Update on staging first for anything commercially important.
  • Prefer plugins that are actively maintained; abandoned ones are the ones whose updates fail hardest when they finally come.

Common questions

I cannot see the .maintenance file.

It starts with a dot, so it is hidden by default. Turn on "show hidden files" in FileZilla, Cyberduck or your host's file manager and it will appear in the site root.

Is it safe to delete?

Yes. It is an empty flag file WordPress creates and removes on every update. Deleting it cannot harm content or configuration.

Can I prevent the message showing at all?

Not for genuine updates — and you should not want to, since it stops visitors seeing a half-updated site. What you can prevent is it getting stuck, by giving PHP enough time and memory to finish.