Your site is showing "Briefly unavailable for scheduled maintenance. Check back in a minute." It's been more than a minute. This is one of the simplest WordPress errors to fix, the entire solution is deleting a single file, but you need to know where to look. Here's the fix, plus what to do afterwards and how to prevent it happening again.
When WordPress runs any update, core, plugin, or theme, it creates a hidden file called .maintenance in your WordPress root directory. This file triggers the maintenance mode message, which prevents visitors from seeing a partially updated site. Once the update finishes, WordPress deletes .maintenance automatically and the site returns to normal.
The problem occurs when the update process is interrupted before it can complete and clean up. Common interruptions: closing the browser tab mid-update, a server timeout during a large plugin update, a PHP memory limit hit that kills the update process, or a network drop that cuts the connection between your browser and the server. The update fails, but the .maintenance file remains. WordPress keeps showing the message indefinitely because it never received the signal to remove it.
The maintenance message affects your entire site, front end and wp-admin. You cannot log in to fix it through the dashboard. FTP or file manager access is required.
Connect to your site via FTP or your hosting control panel's file manager. Navigate to the root of your WordPress installation, the same folder that contains wp-config.php, wp-admin, and wp-content.
Find a file called .maintenance and delete it. Your site will return to normal immediately, no cache clear needed, no server restart required.
Important: .maintenance is a hidden file (it starts with a dot). Hidden files are not shown by default in most FTP clients and file managers. In cPanel File Manager, click Settings in the top right and check "Show Hidden Files (dotfiles)." In FTP clients like FileZilla, go to Server > Force showing hidden files, or look in View > Show Hidden Files. Without this setting enabled, the file won't be visible even though it's there.
If you open the file before deleting it, you'll see it contains a single PHP line: <?php $upgrading = [unix timestamp]; ?>. The timestamp is when the update started. WordPress checks this file on every request and, if it exists and was created less than 10 minutes ago, shows the maintenance message. After 10 minutes, WordPress stops showing the message automatically even if the file still exists, which is why some people find the issue resolves on its own for older interrupted updates. Deleting the file is still the correct fix regardless.
Check whether the update that triggered maintenance mode actually completed. Log into wp-admin and go to Dashboard > Updates. If the plugin, theme, or WordPress core update is still listed as available, the update didn't finish. Run it again, it should complete without issue now that the interrupted state has been cleared.
If the same update repeatedly fails and triggers maintenance mode, there may be an underlying issue: the plugin package may be corrupted on the WordPress.org repository (rare but it happens), your server may be hitting a memory or execution time limit during the update, or the plugin may have a dependency conflict. Check your server error logs for PHP errors logged during the update attempt, the error log often reveals what killed the process.
Updating many plugins simultaneously increases the chance of an interruption triggering this problem. Each plugin update creates and removes the .maintenance file separately, so a bulk update of 15 plugins means 15 create-delete cycles. If any one of those fails, you end up stuck.
For bulk updates, consider using WP-CLI if your host provides SSH access. The command wp plugin update --all runs updates sequentially via the command line, where a server timeout is far less likely than through the browser. WP-CLI is available on most managed and semi-managed hosting environments.
The most effective prevention is not closing the browser tab during updates and not running updates on a slow or unreliable connection. For major updates (WordPress core, or any plugin with a major version bump), use a staging environment first, test the update on staging, verify nothing breaks, then apply it to live. If your host provides one-click restore from daily backups, you can also run updates with confidence knowing you can roll back in two minutes if something breaks.
Automatic updates for minor WordPress core releases (security patches) are generally safe to leave enabled. Automatic updates for plugins and themes are higher risk, a plugin auto-update that breaks your site at 3am is harder to deal with than one you run manually and can immediately reverse.
Test updates on staging before going live. If anything goes wrong, restore from yesterday's backup in one click, no support ticket needed.
View Hosting Plans