Skip to content

Everything for WordPress, web development — and beyond

🔧 How to fix the "Another update in progress" error in WordPress

🔧 How to fix the "Another update in progress" error in WordPress

You head to the admin panel to update WordPress to the latest version, and there it is: a brick wall. "Another update is currently in progress." The update buttons are locked, no timer is ticking, and you have no idea whether to wait or fix it yourself.

This problem is widespread. The built-in WordPress mechanism sets a core_updater.lock during background core updates to prevent two updates from overlapping. The lock is supposed to clear automatically after 15 minutes. But that does not always happen: the database "remembers" the lock and holds it for hours or even days.

Below are three ways to remove the lock: from the simplest (one click) to the fastest (one terminal command). Choose whichever suits your level of access to the site.

💡 Quick overview:

  • Install the free Fix Another Update In Progress plugin and press one button; this works if you have admin access.
  • Find and delete the core_updater.lock row in the wp_options table via phpMyAdmin; this method is for those who cannot reach the admin panel.
  • Run wp option delete core_updater.lock via WP-CLI; an instant option for developers and anyone comfortable with the terminal.

Why the "Another update is currently in progress" error appears

WordPress protects itself from parallel core updates. When an auto-update starts, the system creates a temporary record with the key core_updater.lock in the wp_options table. As long as this key exists, starting another update is impossible, and you see the message "Another update is currently in progress."

By design, the lock clears automatically after 15 minutes. In practice, this often fails to happen. Common causes include the background update process crashing due to insufficient memory on the hosting, a conflict with a caching plugin, or the browser tab being closed prematurely during the update.

The result: the lock persists, the updates panel is blocked. You can force-reset it in three ways.

Method 1: Fix Another Update In Progress plugin

The safest route is to avoid touching the database manually and let a trusted plugin do all the work for you.

Install Fix Another Update In Progress from the WordPress.org directory. The plugin is free and does exactly one thing: it looks for the core_updater.lock key in wp_options and deletes it at the click of a button.

After activation, go to Settings → Fix Another Update In Progress. If the lock is active, you will see a warning and a button:

Fix Another Update In Progress plugin settings page

Click "Fix WordPress Update Lock". The plugin instantly removes the record from the database, and you will see a confirmation:

Message confirming the update lock has been removed

Now return to Dashboard → Updates; the page is active again, and WordPress is ready for the update. You can keep the plugin (it does not burden the site) or remove it until next time.

A couple of notes. The plugin has not been updated since 2023 and is not officially tested with WordPress versions newer than 6.2. In practice, however, it works correctly up to WordPress 6.7 because the structure of the wp_options table has not changed and the core_updater.lock entry is still a plain record that can be removed with a standard delete_option call. If you would rather not install a plugin "with history," proceed to methods 2 and 3.

Method 2: manually removing the lock via phpMyAdmin

When the admin panel is unavailable (white screen, critical error) or you simply do not want to install an extra plugin, you can reset the lock directly in the database. You will need access to phpMyAdmin, which is available in any hosting control panel (cPanel, ISPmanager, Plesk).

Log in to your hosting panel, find the "Databases" section, and open phpMyAdmin:

phpMyAdmin icon in the databases section of cPanel

In the left column, select your WordPress site's database. Find the wp_options table (the prefix may differ if you changed it during installation) and click the "Browse" button:

Browse button for the wp_options table in phpMyAdmin

A list of rows will appear. Find the row with the option name core_updater.lock and click the red "Delete" button next to it:

Deleting the core_updater.lock row from the wp_options table

phpMyAdmin will delete the row. Now return to the WordPress admin panel; the updates page is unlocked.

If the table contains too many rows to find core_updater.lock visually, use the search feature: click the "Search" tab in phpMyAdmin, enter core_updater.lock in the option_name field, click "OK," and the row in question will appear.

⚠️ Before deleting anything in phpMyAdmin, make sure the background update has actually finished or stopped. If the process is still running, forcibly removing the lock can result in incomplete replacement of core files. Give the site 5-10 minutes after the error appears, then proceed.

Method 3: instant reset via WP-CLI

For those who work with the site via the terminal, the fastest method is a single WP-CLI command. Open an SSH console to the server, navigate to the WordPress root folder, and run:

1wp option delete core_updater.lock

If the lock was active, you will see the message Success: Deleted 'core_updater.lock' option.. Done; you can now start the core update:

1wp core update

Incidentally, the wp core update command will warn you about a stale lock itself and suggest that you first delete core_updater.lock. This is officially documented WP-CLI behavior, not a workaround.

This method is also convenient because it can be automated: add lock cleanup to your deployment script or a Cron job for regular maintenance. But if you have never worked with WP-CLI before, methods 1 and 2 are sufficient; they fully solve the problem.

Video: three methods in 3 minutes

A short video demonstrates all three methods on a real site, from discovering the error to clicking the "Update" button:

⁉️🤔 Frequently asked questions

Why doesn't the error disappear after 15 minutes as promised?

Automatic lock reset is designed for the normal completion of the background process. If the update was interrupted (PHP ran out of memory, the hosting process crashed, you closed the tab), WordPress never receives the "done" signal and leaves core_updater.lock in the database. The 15-minute timer relies on WP_Upgrader calling wp_schedule_single_event, but if Cron on your hosting runs through a system scheduler, the event may never execute, and the lock persists for days. Manual removal is the only guaranteed solution.

Do I need to remove the Fix Another Update In Progress plugin after fixing the error?

Not necessarily. The plugin weighs kilobytes, adds no load on the frontend, and registers no extra hooks. You can leave it in place; the next time a lock hangs, the fix will take one click. But if your site has a "no unnecessary plugins" policy, feel free to delete it: resetting the lock via phpMyAdmin or WP-CLI takes 30 seconds.

Can I prevent this error from occurring in the future?

You cannot eliminate it entirely; it is a standard WordPress mechanism. But three things reduce the likelihood. Do not initiate a manual update if you see a notification about a background auto-update. Set up Cron through the server's system scheduler instead of wp-cron.php; this removes the dependency on visitors. Increase the PHP memory limit (memory_limit) to at least 256M: insufficient memory is the most common cause of background update interruptions.

What is the danger of forcibly removing the lock during an active update?

If you delete core_updater.lock while WordPress is replacing core files, you end up with a partially updated installation, half the files from the new version and half from the old one. In the best case, you get an error when logging into the admin panel; in the worst case, a white screen. Before using any of these methods, wait 5-10 minutes after the error appears. You can check for a background process through the hosting's process manager or by running top/htop over SSH.

Should you be afraid of this error

"Another update is currently in progress" looks alarming, but technically it is just one row in the database. WordPress is not broken, your data is intact, the site is running; the core simply set up a temporary barrier.

For quick situations, grab the Fix Another Update In Progress plugin: one button, five seconds, done. No admin access? phpMyAdmin solves it in a minute. Working via the console? wp option delete core_updater.lock and move on. Any of the three methods restores full control over your site's updates.