WordPress Update Failed: Plugin, Theme or Core Won't Update (2026)
Disclosure: some links on this page are affiliate links. We may earn a commission at no extra cost to you. How we test and rate hosts.
"Update failed." Two words, zero explanation. WordPress hides the real error, but the failure always traces to one of five causes. Work through them in this order - each takes minutes to test.
Cause 1: The Leftover Folder Trap
A previous failed update leaves a half-installed folder. Next update tries to write to a path that already exists and dies with "Installation failed: Destination folder already exists." Fix: via FTP, delete the leftover folder in wp-content/plugins or wp-content/themes, then retry. Full walkthrough in the destination folder guide.
Cause 2: Permissions and Ownership
"Could not create directory" or "Could not copy file" = WordPress can't write where it needs to. Folders should be 755, files 644, and owned by the PHP user. The could not create directory guide has the exact chmod commands and the ownership fix that permanently solves the FTP-credentials prompt too.
Cause 3: Download Timeout
The zip downloads but the request times out - "Download failed: cURL error 28". Slow connection between your server and wordpress.org, or a low max_execution_time. Retry, raise the limit (see execution time guide), or update manually via FTP - covered below.
Cause 4: Disk Full
Backups, logs, and old staging copies fill the quota. Check disk usage in your hosting panel - most failures happen at 95%+. Clear old backups, error logs, and the wp-content/upgrade/tmp leftovers, then retry.
Cause 5: The Stuck Update Lock
Core updates set a lock so two processes don't collide. A crashed update leaves it stuck: "Another update is currently in progress." The update lock guide shows the one-line database fix.
Manual Update (Bypass Everything)
For plugins and themes: download the zip from wordpress.org, extract locally, delete the old folder via FTP from wp-content/plugins or wp-content/themes, upload the new folder, reactivate if needed. For core: Dashboard → Updates → "Re-install version X" handles it cleanly - or upload wp-admin and wp-includes (never wp-content) from a fresh WordPress download.
Before any manual update: take a backup - the backup guide covers the 5-minute version.
Updates Shouldn't Be This Fragile
If updates fail weekly on permissions and timeouts, the server stack is misconfigured or underpowered. Managed environments handle updates in the background with automatic rollback - it's the boring reliability you should be paying for.
See Bluehost →What are you building?
Tell us about your project so we can match the perfect hosting plan.
Hosting Cost Calculator
See exactly how much you'll spend on hosting over time. Compare Bluehost vs popular alternatives and discover your potential savings.
Used to calculate transaction fees (Shopify charges 2% on sales)
Frequently Asked Questions
Why does WordPress just say 'Update failed' with no reason?
The admin UI swallows the real error. The actual cause is logged: enable WP_DEBUG_LOG or check your server's PHP error log. Almost always it's one of four things - a file it couldn't write (permissions), a folder that already exists from a previous failed attempt, a download that timed out, or the filesystem credentials method failing.
What does 'Could not create directory' mean during updates?
WordPress can't write to wp-content/upgrade or the plugin/theme folder - a permissions or ownership issue, or the disk is full. Check the 'could not create directory' guide for the chmod/ownership fix, and check disk quota in your hosting panel.
How do I update a plugin manually?
Download the plugin zip from wordpress.org, extract it, then via FTP delete the old folder from wp-content/plugins (don't delete from wp-admin - deactivate first is fine but folder deletion works directly) and upload the fresh one. Same for themes in wp-content/themes. Activate afterward if needed.
The site is stuck saying 'Briefly unavailable' after a failed update - what do I do?
A failed core update leaves a .maintenance file in the site root. Delete it via FTP and the site returns - then complete the update properly or run it manually via Dashboard → Updates → Re-install.
Why does the update ask for FTP credentials?
WordPress can't write files as the web user, so it falls back to the FTP method. That's an ownership mismatch - files owned by a different user than PHP runs as. Your host can fix ownership in one command; on cPanel hosts it's often a suPHP/handler setting.
Ready to launch?
Get Bluehost from $3.99/month with a free domain, free SSL, and 30-day money-back guarantee.
Related Articles
Bluehost vs Competitors: The Technical Deep Dive
We ran 47 benchmarks over 90 days. Here's the raw data on why Bluehost dominates.
Fix ERR_TOO_MANY_REDIRECTS in WordPress (2026): The 6 Real Causes
ERR_TOO_MANY_REDIRECTS means an infinite redirect loop. Match your Site URLs, fix Cloudflare SSL mode, reset .htaccess, kill plugin conflicts - step-by-step with code.
WordPress 403 Forbidden Error: 7 Fixes That Actually Work (2026)
403 means the server understood you but refuses to serve the page. Fix file permissions (755/644), regenerate .htaccess, kill security plugin blocks - in the right order.
Fix 502 Bad Gateway in WordPress (2026): Diagnose First, Then Fix
502 means the gateway got a bad response from your server - usually PHP timeouts, CDN issues, or overload. A 9-step diagnostic workflow from browser checks to server logs.
Fatal Error: Maximum Execution Time Exceeded - 6 Fixes (2026)
max_execution_time kills slow updates at 30-60s. Fix the culprit plugin/theme first, then raise the limit via wp-config, .htaccess or php.ini - with exact code.
HTTP Error Uploading Images in WordPress: 9 Fixes Ranked (2026)
The vague 'HTTP error' on image upload usually means memory limits or Imagick. Fix order: rename the file, bump memory, force GD library, check permissions - with code.