More fixes

"Another update is currently in progress" in WordPress

You click Update Now and WordPress stops at once: "Another update is currently in progress." Nobody else is updating. When an update starts, WordPress writes a lock into the database so two updates cannot run at the same time, and removes it when it finishes. If the earlier update was cut off (a timeout, a closed tab, a server limit), the lock stays behind and blocks every update after it. The lock is safe to clear once you know no update is really running; the real job is finding why the last one stopped.

What the owner sees

harborbakery.example/wp-admin/update-core.php?action=do-core-upgrade

What the checks found


  

Find out which case it is (five minutes)

  1. Wait 15 minutes and try once more. WordPress treats a core update lock older than 15 minutes as abandoned and replaces it by itself. If the message is gone after that, an update was cut off once and you are done (read step 4 so it does not happen again).
  2. Is the site showing "Briefly unavailable for scheduled maintenance"? Then the update stopped halfway and also left a .maintenance file in the site's main folder. Delete that file first (see the maintenance mode fix).
  3. Still blocked after 15 minutes? Look in the database: in phpMyAdmin (host panel), open the wp_options table (your prefix may differ, such as wpk3_options) and search option_name for core_updater.lock. A row there is the leftover lock; its value is the time it was set. Automatic background updates use a second lock, auto_updater.lock.
  4. Why did the last update stop? Check the host's PHP error log for the minute of the failed update. "Maximum execution time exceeded", "Allowed memory size exhausted" or "Could not create directory" each name the real cause.

The fixes, by case

  1. Take a database backup first (the host panel's backup, or phpMyAdmin Export). You are about to delete one row, and a backup makes that reversible.
  2. Remove the lock with WP-CLI, if your host has it: wp option delete core_updater.lock. For the background updater: wp option delete auto_updater.lock.
  3. Or remove it in phpMyAdmin: in the options table, delete only the row whose option_name is core_updater.lock. Touch nothing else.
  4. Delete a leftover .maintenance file in the main folder if the site still shows the maintenance message.
  5. Fix what stopped it, or the next update will leave the lock again: a timeout needs a longer PHP time limit (max execution time fix), a memory error a higher limit (memory exhausted fix), a folder error the right owner and permissions (install or update failed).
  6. Run the update again from Dashboard, Updates, on a fresh page, and leave the tab open until it says WordPress was updated. Then check Dashboard, Updates shows the new version.

What you see, what it means, what it needs

What you seeWhat it meansUsual fix
Message right after a failed or closed updateThe lock from that update is still thereWait 15 minutes, then update again
Message for hours or daysThe lock row was never clearedBack up, delete core_updater.lock
Message plus "Briefly unavailable for scheduled maintenance"The update stopped halfwayDelete .maintenance, clear the lock, update again
Comes back after every update attemptEach update dies on a server limitRaise the time or memory limit, fix folder permissions
Automatic updates stopped, manual ones workThe background updater's lock is stuckDelete auto_updater.lock

What not to do

Most of these are a 15-minute wait or one row deleted. If the lock keeps coming back and the error log does not say why, that is what the box below is for. Related: stuck in maintenance mode, automatic update failed and install or update failed.