← All posts
20 February 2024

Fixing the WordPress "Database Update Required" loop

You click "Update WordPress Database," it succeeds, and then it asks again - forever. Here's how to break the loop, in order of least to most invasive.

It’s one of the more maddening WordPress states: you log in, WordPress insists the database needs updating, you click the button, it says it’s done - and then immediately asks again. The admin becomes a revolving door and you can’t get any real work done.

Work through these in order. The early steps are harmless; the later ones touch files and the database, so back up first before you get to those.

1. Clear your browser and any caching

The simplest cause: you’re being served a stale page. Clear your browser cache (or try an incognito window), and if you run a caching plugin or a CDN, purge those too. Sometimes the update genuinely completed and you’re just looking at a cached prompt.

2. Disable plugins to find a conflict

A misbehaving plugin can re-trigger the prompt. Via SFTP or your host’s file manager, rename /wp-content/plugins to /plugins_off. That deactivates everything at once. If the loop stops, rename it back and re-enable plugins one at a time until the culprit reappears.

3. Check file permissions

Wrong permissions can stop WordPress from writing the flag that says “update done.” Files should be 644 (or 640), directories 755 (or 750). Your host can set these in bulk if you’re unsure.

4. Verify wp-config.php

Incorrect database credentials can cause the update routine to fail silently and loop. Confirm the database name, username, password and host in wp-config.php match what your hosting panel shows.

5. Run the built-in database repair

Add this line to wp-config.php:

define( 'WP_ALLOW_REPAIR', true );

Then visit https://yourdomain.com/wp-admin/maint/repair.php, run Repair Database, and - importantly - remove the line again afterwards. Leaving it in place is a security risk, since that page is accessible without logging in while the flag is set.

6. Update WordPress core manually

If core files are corrupted, replace them. Download the latest WordPress, unzip it, and upload everything except wp-content and wp-config.php over your existing install via SFTP. This refreshes core without touching your content or settings.

7. Rule out PHP and .htaccess

Make sure your host is running a PHP version your WordPress supports, and check .htaccess for a stray redirect that could be bouncing the update page. Regenerating .htaccess (Settings → Permalinks → Save) is a safe reset.

8. Read the error logs

If it’s still looping, the server error log usually names the real problem - a fatal error in a plugin, a memory limit, a failed query. Your host can point you to the log if you can’t find it.

When to stop and call someone

If you’ve reached the manual-core-replace stage and it’s still looping, something deeper is wrong - a broken table, a half-finished migration, or a hosting misconfiguration. That’s the point to stop poking a live site and get help, especially if it’s a site that makes you money.


Stuck in exactly this loop right now and the site’s down? We take over broken WordPress sites and get them stable - usually the same day.

Tell us what’s broken.
We’ll tell you the truth.

Book a free call →
Reply within one business day ¡ EN / LV