Black Friday: 40% off website design, SEO & maintenance. Ends 5 Dec.Black Friday: 40% off everything.Claim the deal

WordPress Update Failed? How to Fix Automatic Update Errors

Shah Raza

Tutorials

A WordPress update failed message means WordPress started replacing core, plugin or theme files and couldn’t finish. The cause is almost always one of five things: file permissions, disk space, PHP limits, a blocked download, or a setting that turned automatic updates off. The error text tells you which one. WPOptimizers reads that text before changing anything.

Most failed updates don’t break the site. They leave it on the old version and show a warning. A few leave a half-replaced plugin or core behind, and those need repairing before you try again. This guide covers both.

How Do You Fix a Failed WordPress Update?

To fix a failed WordPress update, first check what failed and read the exact error. Then clear any leftover update state, fix file ownership, free disk space, raise PHP limits and make sure the server can reach WordPress.org. If automatic updates stopped, check Site Health. WPOptimizers updates manually only when the cause is fixed.

The 8 fixes in this guide:

  1. Check what failed and whether the site still works
  2. Decode the update error message
  3. Clear the leftover update state
  4. Fix file ownership and permissions
  5. Free up disk space and raise PHP limits
  6. Fix “Download failed” and connection errors
  7. Get automatic updates running again
  8. Update WordPress, the plugin or the theme manually

Take a backup of your files and database before you retry anything. If a retry makes things worse, here’s how to restore WordPress from backup.

What Does “An Automated WordPress Update Has Failed to Complete” Mean?

This dashboard notice means a background core update stopped partway, or a leftover .maintenance file from an earlier update is still in your root folder. WordPress saves the failure in a database flag called auto_core_update_failed and keeps showing the warning until an update succeeds. WPOptimizers treats this notice as a core repair job.

Here’s how the automatic update process works:

  1. WP-Cron runs a scheduled check (twice a day) for new core, plugin and theme versions.
  2. If an update is allowed, WordPress downloads the package from WordPress.org into wp-content/upgrade.
  3. It unzips the package, puts the site in maintenance mode and copies the new files over the old ones.
  4. It removes maintenance mode, cleans up and emails the site admin with the result.

If step 3 fails before any files are copied, the failure is non-critical. Your site stays on the old version, and WordPress can try again. If it fails after files start copying, the failure is critical. Core may now be a mix of old and new files, so WordPress stops automatic core updates until you fix it.

The email tells you which one happened:

Email You ReceivedWhat It Means
“Background Update Failed”Non-critical. Nothing was replaced. The site is on the old version
“URGENT: Your site may be down due to a failed update”Critical. Core files were partly replaced. Check the site now
“Some plugins have failed to update” (or themes)A plugin or theme update failed or was rolled back
“Your site has updated to WordPress x.x”The update worked. Ignore any old warning and clear your cache

Fix 1: Check What Failed and Whether the Site Still Works

Before fixing anything, confirm three things: whether the front end and wp-admin load, which item failed (core, a plugin or a theme), and which version is installed now. A site that loads with a warning is a calm fix. A site that’s down needs repair first. WPOptimizers starts every failed-update job with this check.

  1. Open the site in a private window. Then open wp-admin.
  2. Go to Dashboard → Updates. Anything still listed there didn’t update.
  3. Check the version in the footer of the admin area, or under Tools → Site Health → Info → WordPress.
  4. Read the email WordPress sent. It names the item and often includes the error.

With WP-CLI:

wp core version
wp core check-update
wp plugin list --update=available
wp option get auto_core_update_failed

The last command shows the version WordPress tried, the error code and whether the failure was critical.

If the site shows a blank page, follow the WordPress white screen of death steps first. If it shows a server error, start with the 500 internal server error guide.

Fix 2: Decode the Update Error Message

Every failed update leaves a short error on the Updates screen, the Plugins screen or in the email. That text points to a single cause, so you don’t have to try every fix. Match your message in the table below, then go straight to that fix. WPOptimizers keeps this list pinned for client sites.

Error MessageLikely CauseGo To
Could not create directoryWordPress can’t write to wp-content or the plugin folderFix 4
Could not copy file / Could not remove the old pluginWrong ownership, or the disk is fullFix 4, Fix 5
Connection Information screen asks for FTP detailsWordPress can’t write files directlyFix 4
The package could not be installed. PCLZIP_ERR_BAD_FORMATThe download was incomplete or corruptedFix 5, Fix 6
Maximum execution time exceeded / Allowed memory size exhaustedPHP limits are too lowFix 5
Download failed. cURL error 28 (timed out)The server can’t reach WordPress.org in timeFix 6
Download failed. cURL error 60 (SSL certificate problem)The server’s certificate bundle is outdatedFix 6
Download failed. Unauthorized / Update package not availableA premium plugin or theme has no active licenseFix 6
Requires a newer version of PHPYour PHP version is below the plugin’s minimumFix 5
Another update is currently in progressA leftover update lockFix 3
Briefly unavailable for scheduled maintenanceA leftover .maintenance fileFix 3
Update rolled back / “contained a fatal error”WordPress restored the old version after a crash checkSee the rollback section below

Fix 3: Clear the Leftover Update State

A failed update can leave two things behind: a .maintenance file that keeps the site offline, and a core_updater.lock row that blocks the next attempt. Remove both before you retry, or the retry fails the same way. WPOptimizers clears them only after confirming no update is still running.

The full steps are in our guide to WordPress stuck in maintenance mode, including File Manager, FTP and SSH methods. The short version with WP-CLI:

wp maintenance-mode deactivate
wp option delete core_updater.lock

Also look in wp-content/upgrade. Folders left there point to the item that stopped. Once the update succeeds, you can empty this folder.

Fix 4: Fix File Ownership and Permissions

WordPress can only update itself if the PHP process owns the files it’s replacing. If the files belong to a different user, WordPress asks for FTP details, or automatic updates fail silently because no one is there to type them in. Fix ownership first, permissions second. WPOptimizers sees this most after migrations and manual uploads.

Signs this is your cause:

  • The Connection Information screen appears when you click Update
  • “Could not create directory” or “Could not copy file” errors
  • Manual updates work with FTP details, but automatic updates never run

Check ownership over SSH:

ls -la ~/public_html
ls -la ~/public_html/wp-content

Every file and folder should belong to your hosting account’s user (the same user PHP runs as). If you see root or another user, ask your host to reset ownership. On a server you manage, the command looks like this (replace the user and path):

chown -R youruser:youruser /path/to/wordpress

Standard permissions: folders 755, files 644, and wp-config.php 640 or 600. Never set 777. It lets anyone on the server change your files.

find /path/to/wordpress -type d -exec chmod 755 {} \;
find /path/to/wordpress -type f -exec chmod 644 {} \;

You may see advice to add define( 'FS_METHOD', 'direct' ); to wp-config.php. Only do this when ownership is already correct. If the files belong to another user, forcing direct mode just changes the error.

Fix 5: Free Up Disk Space and Raise PHP Limits

An update needs room to download the zip, unpack it and keep a temporary backup of the old version. If the disk or the PHP memory and time limits run out, the update stops halfway. Check free space and limits before retrying a large update. WPOptimizers checks both on every site before major core releases.

Disk space. Check usage in your hosting panel, or over SSH:

df -h
du -sh wp-content/upgrade wp-content/upgrade-temp-backup wp-content/uploads

Recent WordPress versions keep a copy of the old plugin or theme in wp-content/upgrade-temp-backup during updates. Failed updates can leave these copies behind. Once your updates work, old folders there and in wp-content/upgrade can go. Large backup archives stored inside wp-content are another common space hog. Move them off the server.

PHP limits. For updates, aim for at least 256M memory and a max execution time of 120 seconds or more. This guide to increasing the WordPress memory limit shows the safe method for your server.

PHP version. If a plugin says it requires a newer PHP version, the update won’t install until you upgrade PHP in your hosting panel. Test the PHP change on staging first, since older plugins can break on a new version.

If your host can’t give you enough space or limits, it may be time to compare managed vs shared hosting.

Fix 6: Fix “Download Failed” and Connection Errors

“Download failed” means your server couldn’t fetch the update package. Common reasons are a firewall or DNS problem blocking WordPress.org, an outdated SSL certificate bundle on the server, a timeout on slow hosting, or a premium plugin with an expired license. WPOptimizers tests the connection from the server itself, not the browser.

Test from the server (SSH):

curl -I https://api.wordpress.org/core/version-check/1.7/
curl -I https://downloads.wordpress.org/

A 200 response means the connection works. A timeout or SSL error means the problem is on the server. Send the exact error to your host and ask them to:

  • Allow outbound HTTPS to api.wordpress.org and downloads.wordpress.org
  • Update the server’s CA certificate bundle (fixes cURL error 60)
  • Check DNS resolution and any outgoing firewall rules

Also check Tools → Site Health → Status. If it reports that loopback requests or REST API requests fail, the same network issue is likely blocking updates.

Premium plugins and themes don’t update from WordPress.org. They download from the developer’s own server and need an active license key in the plugin’s settings. “Unauthorized” or “package not available” almost always means the license expired or isn’t entered.

Security plugins that block outgoing requests can cause this too. Temporarily disable the plugin’s outbound request blocking, run the update, then turn it back on.

Fix 7: Get Automatic Updates Running Again

If automatic updates stopped completely, WordPress is either blocked by a setting or waiting because of an earlier critical failure. Site Health shows the blocker, and WP-CLI shows the failure flag. Remove the cause, then trigger the update once to confirm. WPOptimizers checks this on every new client site.

Step 1: Run the Site Health test. Go to Tools → Site Health → Status. If you see “Background updates are not working as expected”, open it. WordPress lists exactly what it found.

Step 2: Check wp-config.php for these constants:

ConstantEffect
define( ‘AUTOMATIC_UPDATER_DISABLED’, true );Turns off all automatic updates
define( ‘WP_AUTO_UPDATE_CORE’, false );Turns off automatic core updates
define( ‘WP_AUTO_UPDATE_CORE’, ‘minor’ );Allows only minor and security core releases
define( ‘DISALLOW_FILE_MODS’, true );Blocks all updates and installs, manual too
define( ‘DISABLE_WP_CRON’, true );Stops WP-Cron, so updates never trigger unless a real server cron job runs it

Remove or change only the ones you didn’t set on purpose. Some managed hosts set these deliberately because they run updates themselves.

Step 3: Look for version control folders. WordPress skips automatic updates if it finds a .git, .svn or .hg folder in the WordPress folder or above it. If a developer left one behind and you don’t use it, ask them before removing it.

Step 4: Check per-item settings. Plugin and theme auto-updates are switched on per item. Go to Plugins and Appearance → Themes and look for “Enable auto-updates”. Core settings are on Dashboard → Updates.

Step 5: Clear the failure flag only after a repair. After a critical core failure, verify core files first:

wp core verify-checksums

If files fail, reinstall core (Fix 8). Once the checksums pass and the site works, you can clear the flag and run the scheduled update check:

wp option delete auto_core_update_failed
wp cron event run wp_maybe_auto_update

A successful core update from Dashboard → Updates also clears the flag on its own.

Why Did WordPress Roll Back a Plugin Auto-Update?

Since WordPress 6.6, a plugin auto-update is tested right after it installs. WordPress loads the homepage in the background, and if that request returns a PHP fatal error, it restores the previous version and emails you. Sometimes the request fails for another reason, such as caching or a firewall. WPOptimizers checks which one happened before retrying.

Turn on WP_DEBUG_LOG and look in wp-content/debug.log after the next auto-update run. A line saying the update “contained a fatal error” and the previous version was restored confirms the rollback.

  • Real fatal error: don’t force the update. Check the plugin’s changelog and support forum, test the new version on staging, or wait for the next release.
  • False alarm: if the log shows the loopback request itself failed (for example, a cURL error before any PHP error), the plugin may be fine. A page cache, security plugin or server firewall blocking the site’s request to itself is a common reason. Fix loopback requests under Site Health, then retry.

Themes don’t get this rollback check, so a theme auto-update with a fatal error stays installed. Test theme updates on staging before enabling auto-updates for them.

Fix 8: Update WordPress, the Plugin or the Theme Manually

When the cause is fixed but the one-click update still won’t finish, update by hand. A manual update replaces the files directly, so it also repairs a half-finished core update. Keep wp-content and wp-config.php untouched. WPOptimizers uses this as the last step, not the first.

Reinstall core from the dashboard: go to Dashboard → Updates and click “Re-install version x.x”. This is the easiest repair if wp-admin loads.

With WP-CLI:

wp core update
wp core update-db

Manual core update over FTP or File Manager:

  1. Download the latest WordPress zip from WordPress.org and unzip it on your computer.
  2. Delete the wp-admin and wp-includes folders on the server.
  3. Upload the new wp-admin and wp-includes folders.
  4. Upload the loose files from the zip’s root folder and overwrite the old ones. Don’t upload a wp-content folder, and don’t touch wp-config.php.
  5. Visit /wp-admin/. If WordPress shows “Database Update Required”, click Update WordPress Database.

Manual plugin or theme update:

  1. Download the new version’s zip from WordPress.org or the developer’s account area.
  2. Go to Plugins → Add New Plugin → Upload Plugin (or Appearance → Themes → Add New Theme → Upload Theme).
  3. Choose the zip and click Install Now.
  4. When WordPress says the plugin is already installed, click “Replace current with uploaded”.

With WP-CLI, wp plugin update plugin-slug retries a single plugin. To go back to an older version after a bad update, use wp plugin install plugin-slug --version=x.x --force.

How Do You Stop WordPress Updates From Failing Again?

Prevent failed updates by keeping file ownership correct, leaving disk and PHP headroom, updating one item at a time, and testing major releases on staging. Take a backup before every update and check that WP-Cron and loopback requests work. WPOptimizers runs this routine on every site it maintains.

An update-safety checklist:

  1. Back up files and the database before every update
  2. Test major core, plugin and theme releases on staging first
  3. Update plugins one at a time instead of in a large bulk batch
  4. Keep at least a few GB of free disk space and 256M PHP memory
  5. Keep premium licenses active and entered in each plugin
  6. Check Tools → Site Health monthly for background update and loopback warnings
  7. Read every update email WordPress sends, especially ones marked urgent

For the full routine, follow this safe plugin update process, or let our WordPress maintenance team handle updates for you.

Frequently Asked Questions About Failed WordPress Updates

These answers cover what site owners ask most after a WordPress update failed, including data safety, automatic update settings and retry timing, based on how WPOptimizers fixes client websites.

Is “Updating Failed. The Response Is Not a Valid JSON Response” an Update Error?

No. That message comes from the block editor when saving a post or page, not from a core, plugin or theme update. It usually points to a REST API, permalink or security plugin issue, and needs a different fix.

Will a Failed WordPress Update Delete My Content?

No. Updates replace core, plugin and theme files. Your posts, pages, media and database stay as they were. The risk is a half-replaced plugin or core, which Fix 8 repairs. A backup before retrying keeps you safe either way.

Should I Turn Off Automatic Updates After a Failure?

Usually not. Minor core releases fix security issues, and turning them off leaves the site exposed. Fix the cause instead. If you prefer to control plugin updates yourself, turn off auto-updates per plugin and update them on a set schedule.

Why Does WordPress Say the Update Failed When the Version Is New?

The files were copied, but a cleanup step or the post-update check failed. Clear your cache, check Dashboard → Updates again and run wp core verify-checksums. If the checksums pass and nothing is listed for update, the update worked.

How Often Does WordPress Try Automatic Updates?

WordPress checks for updates twice a day through WP-Cron. On low-traffic sites WP-Cron only runs when someone visits, so updates can be delayed. A real server cron job makes the schedule reliable.

Can I Retry a Failed Update Straight Away?

Only after clearing the leftover state and fixing the cause. Retrying with the same full disk, wrong ownership or blocked connection fails the same way, and repeated attempts can leave more half-finished files behind.

Shah Raza

Shah Raza

Content Marketing Manager at WPOptimizers

As Content Marketing Manager at WPOptimizers, I focus on creating helpful, research-driven content around WordPress, SEO, website performance, and digital growth. My goal is to make complex topics easier to understand and help businesses build better websites, improve search visibility, and grow their online presence through practical, actionable insights.

About

About WPOPTIMIZERS LLC

Contact Us

AI disclosure (llms.txt)

6545 Market Ave, Nor Ste 100 Canton, OH 44721, USA