A WordPress update failed message usually names the problem: "Could not create directory", "Destination folder already exists", "Download failed" or a request for FTP credentials. Each points to a specific cause – permissions, leftovers from an earlier failed update, disk space or outgoing connections. Here is how to fix each one.
Before you start
- Make a backup or confirm a recent one exists (JetBackup in cPanel).
- cPanel File Manager access.
"Installation failed: Could not create directory"
WordPress cannot write to wp-content or wp-content/upgrade.
- Check disk usage in the cPanel sidebar. A full quota or inode limit stops all writes; see inode and disk quota limits.
- In File Manager, check permissions: folders
755, files644. Right-click → Change Permissions. - Make sure the files are owned by your cPanel user. Files created by an old script or restore with a different owner cannot be changed; open a ticket and support will fix ownership.
"Destination folder already exists"
A previous failed install left the folder behind.
- Go to
wp-content/plugins(orthemes). - Delete or rename the folder named in the error.
- Install the plugin again.
"Download failed" or "cURL error 28"
The server could not fetch the package from WordPress.org. Retry after a few minutes. If it keeps failing, the site may be blocking outbound requests with a plugin or WP_HTTP_BLOCK_EXTERNAL in wp-config.php. See cURL error 28.
WordPress asks for FTP credentials
WordPress thinks it cannot write files directly, usually because of ownership. On cPanel hosting, files should be owned by your user and this prompt should not appear. As a workaround add this to wp-config.php:
define('FS_METHOD', 'direct');If updates still fail, fix ownership rather than entering FTP details.
"The package could not be installed. No valid plugins were found"
You uploaded a ZIP that wraps the plugin in an extra folder, or a theme ZIP in the plugin uploader. Download the correct installable ZIP from the vendor.
Note: If an update failed halfway and the site shows "Briefly unavailable for scheduled maintenance", delete the .maintenance file first.
What to check afterwards
Run the update again and confirm the version number changed under Plugins or Dashboard → Updates.
FAQ
What permissions should WordPress use?
Folders 755, files 644, and wp-config.php 600 or 640.
Can I update plugins manually?
Yes: download the ZIP, extract it and replace the plugin folder via File Manager or FTP.
Why did updates work before?
Usually a quota filled up, or a restore or migration changed file ownership.
