If your site has been showing WordPress's "Briefly unavailable for scheduled maintenance. Check back in a minute." message for longer than a minute — especially after an update that got interrupted — this is almost always just a leftover .maintenance file that WordPress creates automatically during updates and normally deletes when the update finishes. If the update didn't finish cleanly, that file gets left behind and WordPress has no way of knowing the update is actually over, so it keeps showing the maintenance screen indefinitely.

Symptoms

  • The site shows the exact message "Briefly unavailable for scheduled maintenance. Check back in a minute." to every visitor, including admins.
  • This started right after triggering a plugin, theme, or core update — especially if you closed the browser tab, lost your connection, or the page seemed to hang mid-update.
  • The message persists well past a minute or two, sometimes for hours, and doesn't resolve on its own by refreshing.
  • You cannot access wp-admin either — it shows the same maintenance message.

Likely causes, in order of how often they actually happen

  1. An update was interrupted mid-process, leaving the .maintenance file in place. WordPress creates this file at the very start of any core, plugin, or theme update specifically to show visitors a friendly message instead of a broken page while files are being swapped out. It's supposed to delete itself the moment the update finishes — but if the browser tab was closed, the connection dropped, the server hit a timeout, or a bulk update of several plugins at once got interrupted partway through, the file never gets cleaned up.
  2. A bulk update (updating many plugins simultaneously) increased the chance of a timeout. Updating one plugin at a time is quick, but triggering "Update All" on ten plugins simultaneously — especially on shared hosting with tight execution time limits — significantly raises the odds that the whole batch times out before every file operation and cleanup step completes.
  3. A hosting-level resource limit (memory or execution time) killed the update process outright. Less common, but on very constrained hosting plans, the PHP process running the update can simply be killed by the server before WordPress gets to the cleanup step, regardless of what triggered the update.

Fix it: lowest-risk steps first

Step 1 — Locate and delete the .maintenance file

This is safe, fast, and is very often the entire fix. The file is nothing more than a flag — deleting it does not undo or affect the update itself, it only tells WordPress "the update is over, stop showing the maintenance screen."

  1. Connect to your site via FTP/SFTP, or use your hosting control panel's File Manager (cPanel, aaPanel, Plesk, etc.).
  2. Navigate to your WordPress root directory — the same folder that contains wp-config.php, wp-admin, and wp-content.
  3. Look for a file named exactly .maintenance. It's a hidden (dotfile) file, so make sure your FTP client or file manager has "show hidden files" enabled — this setting is usually in the client's view/preferences menu.
  4. Delete the file (or rename it to something like .maintenance.bak if you'd rather keep a copy temporarily instead of deleting outright).
  5. Reload the site immediately — it should be back online right away, with no further steps needed if the underlying update actually completed.

Step 2 — Confirm the interrupted update actually finished

Deleting the file only removes the "in progress" flag — it doesn't guarantee the update itself completed cleanly. Check this right after Step 1, before assuming everything's fine.

  1. Go to Dashboard → Updates in wp-admin and check if the plugin, theme, or core version you were updating now shows the new version number.
  2. For a plugin or theme specifically, go to Plugins (or Appearance → Themes) and check the version number listed under its name against the version you were trying to update to.
  3. If the version number did NOT change, the update was genuinely interrupted partway and needs to be re-run — go to the relevant update screen and update that single item again now that the maintenance flag is cleared.
  4. If it's WordPress core itself that was mid-update, check Dashboard → Updates for any leftover notice about completing the update, and re-run it from there if prompted.

Step 3 — Re-run the update one item at a time instead of in bulk

If the update genuinely didn't complete, don't just hit "Update All" again the same way — update the single affected plugin, theme, or core individually this time, and wait for it to fully finish (watch for the success message) before doing anything else in that browser tab.

Verify the fix

  1. Confirm the site loads normally for a logged-out visitor (test in a private/incognito window), not just for you as an admin.
  2. Confirm wp-admin is reachable and the dashboard loads without any lingering maintenance notice.
  3. Re-check the version numbers of whatever was being updated (Step 2) to confirm they match the intended target version, not just that the maintenance message is gone.
  4. Spot-check that the site's front end looks and functions correctly — a plugin update that was interrupted mid-file-copy can occasionally leave a plugin in a partially-updated state even after the maintenance flag is cleared, which is worth a quick visual check.

If you need to roll back

Deleting the .maintenance file itself has no rollback risk — it's a flag, not site content, and removing it cannot make things worse. If, after clearing the flag, you discover in Step 2 that a plugin or theme update genuinely did not complete and the site is now behaving oddly (missing styles, a broken feature), restore that specific plugin or theme from your most recent backup or reinstall it fresh from the WordPress plugin directory or your theme's original source, rather than trying to patch a partially-updated set of files by hand.

Related fixes

FAQ

Is it safe to just delete the .maintenance file even if I'm not sure the update finished?

Yes — deleting it never harms anything by itself. The file's only job is displaying the maintenance message; it has no other function. Worst case, you delete it too early and the update process (if it's actually still silently running) tries to recreate it, which happens automatically and harmlessly.

How do I see hidden files like .maintenance in my FTP client or file manager?

In most FTP clients (FileZilla, Cyberduck) there's a "Server" or "View" menu option like "Force showing hidden files." In cPanel's File Manager, there's a Settings gear icon with a "Show Hidden Files (dotfiles)" checkbox. aaPanel's file manager has a similar toggle in its file browser's top-right options.

Why did closing my browser tab affect a server-side update?

Some update processes, particularly bulk updates triggered from the browser, rely on the browser maintaining the connection to receive progress and trigger each subsequent step in the sequence via AJAX requests. Closing the tab or losing connectivity partway through can leave the server-side process in whatever state it was in when the connection dropped, including the maintenance flag never being cleared.

Should I update plugins one at a time from now on?

Yes, especially on shared hosting or sites with many plugins. Updating one at a time takes longer overall but each individual update is far less likely to hit an execution timeout, and if one does fail, you immediately know exactly which plugin caused it instead of troubleshooting a batch of ten.