A WordPress update can fail while updating the core software, a plugin or a theme. The dashboard may show “Update failed,” “Download failed,” “Installation failed,” a permissions message or a connection error.
Do not repeatedly click Update without identifying the cause. A failed update can leave files incomplete or the site stuck in maintenance mode.
Create a backup before retrying
Back up the database and website files, especially before a WordPress core update. Confirm that the backup is stored off-site and can be restored.
Check the exact error message
The message usually identifies the failing stage: downloading the package, unpacking it, copying files or completing the database update. Review PHP and server logs at the same timestamp for additional details.
Confirm internet and WordPress.org connectivity
The server must connect to WordPress.org to download official updates. DNS failures, outbound firewall rules or temporary connectivity problems can block the request. Check Tools > Site Health for communication errors and ask the host to test outbound HTTPS connections.
Check disk space and inodes
Updates need temporary space to download and unpack files. Review disk and inode usage in cPanel or your hosting dashboard. Old backups, logs, caches and staging copies often consume more space than expected.
Check file ownership and permissions
WordPress must be able to write to its own directories. Files commonly use 644 and directories 755, but ownership is equally important. Do not use 777 permissions. Ask the host to correct ownership if files were uploaded under a different server user.
Remove a leftover maintenance file
If the update stopped unexpectedly, a hidden .maintenance file may remain in the WordPress root. Delete only that file after confirming no update is still running. My WordPress maintenance mode guide covers the full process.
Check PHP limits and timeouts
Large plugins and slow servers may exceed memory or execution limits during extraction. Review logs for memory exhaustion, timeout or killed-process messages. Fix the underlying resource problem before increasing limits.
Disable security and caching conflicts
Security plugins, server firewalls and malware scanners may block file changes. Temporarily disable the most likely layer, run one update and restore protection immediately. Clear WordPress and hosting caches afterward.
Update one component at a time
When several updates are pending, update WordPress core, plugins and themes separately. This makes the failing component easier to identify. Test critical features after each group.
Replace files manually when necessary
For a plugin or theme, download a clean copy from the official source and replace the existing files through SFTP or cPanel. Preserve custom code and confirm compatibility first. Never overwrite a customized parent theme without a backup.
For WordPress core, follow the official manual update process and do not replace wp-content or wp-config.php.
Prevent update failures
- Maintain verified off-site backups.
- Keep adequate disk space available.
- Use staging for major updates.
- Remove abandoned plugins and themes.
- Monitor PHP and server logs.
For related failures, visit my WordPress troubleshooting hub.
