WordPress Errors

WordPress Stuck in Maintenance Mode

Warning Updated: July 6, 2026

What Is This Error?

Every time WordPress runs an update — for core, a plugin, or a theme — it puts your site into maintenance mode and shows visitors this message: “Briefly unavailable for scheduled maintenance. Check back in a minute.” This is intentional and normally lasts only a few seconds while files are swapped out.

To trigger that message, WordPress creates a hidden file called .maintenance in your site’s root directory. Once the update finishes successfully, WordPress deletes that file and your site comes back online. The problem is that if the update crashes, times out, or gets interrupted, WordPress never gets the chance to clean up — so that file just sits there, keeping your site locked in maintenance mode forever.

The good news: this is one of the simplest WordPress problems to fix. No database edits, no reinstall. You delete one file and your site is back.

Get free WordPress & AI tips

Join 500+ readers. No spam, unsubscribe anytime.

Why Does This Happen?

  • PHP execution timeout: Your server has a maximum time limit for running scripts. A large plugin or theme update that exceeds that limit gets cut off mid-process, leaving the .maintenance file behind.
  • Dropped browser connection: If you close the tab or lose internet while an update is in progress, WordPress has no way to complete the final cleanup step — even if the actual file changes finished.
  • PHP memory exhaustion: Updates that demand more RAM than your server’s memory_limit allows will crash partway through, stopping WordPress before it can remove the maintenance flag.
  • Running too many updates at once: Selecting every plugin and hitting Update All can overload a shared hosting environment, causing one or more updates to fail mid-execution.
  • Caching or CDN locking: Some caching layers or CDN configurations lock files during the update window and inadvertently prevent WordPress from deleting the .maintenance file even after a clean update.

How to Fix It — Step by Step

  1. Connect to your server via FTP or File Manager. Use an FTP client like FileZilla, or open the File Manager inside your hosting control panel (cPanel, Plesk, etc.). Navigate to your WordPress root directory — the folder that contains wp-admin, wp-content, and wp-includes.

    You should see: The main WordPress directory listing with all core folders visible.

  2. Enable hidden file visibility. The .maintenance file starts with a dot, which hides it by default. In FileZilla, go to Server → Force Showing Hidden Files. In cPanel File Manager, click Settings and tick Show Hidden Files (dotfiles), then click Save.

    You should see: Dotfiles like .htaccess now appearing alongside your regular files in the directory listing.

  3. Find and delete .maintenance. Locate the file named exactly .maintenance in the root directory. Right-click it and choose Delete. This file contains only a timestamp — there is nothing in it worth keeping.

    You should see: The .maintenance file disappear from the listing immediately.

  4. Reload your website. Open a fresh browser tab, clear your browser cache (Ctrl+Shift+Delete on Windows, Cmd+Shift+Delete on Mac), and visit your site’s URL.

    You should see: Your homepage loading normally with no maintenance message.

  5. Verify the original update completed. Log in to wp-admin and go to Dashboard → Updates or check your Plugins list. If the update that triggered this is still showing as available, run it again now.

    You should see: Either “Everything is up to date” or the plugin displaying its latest version number.

  6. Alternative — delete via SSH (fastest method for developers). If you have SSH access, connect to your server and run:

    rm /var/www/html/.maintenance

    Replace the path with your actual WordPress root. No output means success.

    You should see: A silent return to the prompt. Confirm with ls -la | grep maintenance — nothing should appear.

Common Mistakes When Fixing This

  • Waiting for it to self-resolve: Once the update process has ended — successfully or not — nothing will automatically delete the .maintenance file. Waiting hours won’t help. Manual deletion is always required.
  • Deleting the wrong file: Do not confuse .maintenance with .htaccess or wp-config.php. Deleting either of those will cause a far more serious site failure. Read the filename carefully before clicking delete.
  • Forgetting to clear the cache: Even after you delete the file, a caching plugin or CDN may continue serving the cached maintenance page. Purge your caching plugin (WP Rocket, W3 Total Cache, etc.) and — if applicable — clear your Cloudflare cache before concluding the fix didn’t work.
  • Fixing the symptom but ignoring the root cause: If this keeps happening on your site, your PHP max_execution_time or memory_limit is too low. Add these lines to your wp-config.php as a starting point and check with your host about raising server-level limits:
    @ini_set('memory_limit', '256M');

Frequently Asked Questions

How long should WordPress maintenance mode normally last?

For a typical plugin update, anywhere from a few seconds to about a minute. Larger updates — like a major WordPress core release — can take two to three minutes on slower servers. If your site has shown the maintenance screen for more than five minutes, the update has almost certainly failed and you should go ahead and delete the .maintenance file.

Will deleting the .maintenance file cause any data loss?

No. The .maintenance file holds nothing but a Unix timestamp that marks when the update began. Deleting it has zero effect on your posts, pages, media, database, or settings. Your content is completely untouched.

My site still shows the maintenance page after I deleted the file — what now?

This is almost always a caching problem. First clear your browser cache, then purge your WordPress caching plugin, and finally clear any server-side caches (Redis, Varnish) or CDN caches. If you use Cloudflare, log in and do a full cache purge from the Caching tab. One of those layers is almost certainly serving a stale copy of the maintenance page.

How do I stop this from happening again?

Two practical steps help most: first, increase your PHP time and memory limits so updates have enough resources to finish cleanly. Second, avoid bulk-updating every plugin at once — update them in small batches of two or three. You can also take a full backup before any update run, which won’t prevent the issue but makes recovery much easier if something else goes wrong.

This site contains affiliate links. If you make a purchase through one of these links, we may earn a small commission at no extra cost to you. Learn more.