Common causes
- A previous core update was interrupted by a timeout or closed tab
- A background automatic update is genuinely running right now
- Two admins or a management tool (ManageWP, MainWP, host panel) triggered updates at the same time
- A persistent object cache is serving a stale copy of the lock option
- Database write errors prevented WordPress from removing the lock
How to fix it
- Wait 15 minutes. The lock is considered stale after 15 minutes, after which WordPress lets a new update start. Do not repeatedly click Update in the meantime.
- Delete the lock with WP-CLI. Run wp option delete core_updater.lock from the site root. This is the safest way because it goes through WordPress's own API and clears object cache entries.
- Or delete it in phpMyAdmin. Open the wp_options table (your prefix may differ), find option_name = core_updater.lock and delete that single row. Do not delete other rows.
- Flush the object cache. If you use Redis or Memcached, flush it (wp cache flush) so the old lock value is not returned from memory.
- Check whether a management tool is updating. Look at your host's auto-update settings or remote management dashboard and pause scheduled updates while you update manually.
- Retry the update and verify. Run the update from Dashboard > Updates or wp core update, then wp core verify-checksums to confirm the files are complete.
WP-CLI or SQL
wp option get core_updater.lock
wp option delete core_updater.lock
wp cache flush
-- SQL alternative (adjust prefix)
DELETE FROM wp_options WHERE option_name = 'core_updater.lock'; How to stop it happening again
- Let only one person or tool handle updates for a site
- Take a database backup before major core updates
- Make sure max_execution_time is high enough for core updates to finish