The Error
The following error tends to appear when updating a plugin from the WordPress plugin panel:
Update failed: The package could not be installed. PCLZIP_ERR_MISSING_FILE (-4) : Missing archive file ‘/tmp/someverylongrandomfilename.tmp’
Troubleshooting
When troubleshooting the error, check each of the following. After each effort, attempt the automatic download/update again to help isolate a cause:
Available Disk Storage
Check that your hosting account has enough available storage remaining to download, unpack and replace the plugin files in question. You can typically do this in your hosting account control panel provided by the host (cPanel, etc.).
Update PHP Version
Check that your hosting account is running the most current version of PHP supported by your WordPress installation, theme, other plugins, etc.
Consult the PHP Supported Versions table to see your and other versions’ support and end-of-life status. NOTE: The most current version of PHP may not be supported by your installation if its various components do not help it.
Reset PHP to the current version in CPanel (MultiPHP Manager) or via Your Webhost
You can manage your current version of PHP via your provided hosting control panel. Attempt to reset it to the current version. This has a meager chance of being a cause, so feel free to ignore it.
Manually Set a New /Temp Directory
The error:
Update failed: The package could not be installed. PCLZIP_ERR_MISSING_FILE (-4) : Missing archive file ‘/tmp/someverylongfilename.tmp’
shows the location where the temporary copy of the plugin files was downloaded (in this case/tmp, which is one tier above the web root of the hosting account usually).
You can reset the temporary directory used by WordPress to download and unpack new plugin versions using the following steps.
First, MAKE SURE YOU HAVE A VIABLE, CURRENT BACKUP of your WordPress installation and database.
If you have access to your WordPress installation files via SFTP, or your control panel, you can alter the WordPress wp-config.php file found in the root of your installation.
First, create a new temporary directory, for example, in the wp-content directory (/wp-content/temp), and set permissions for that directory to 755 (that’s rwxr-xr-x).
Next, download and open the wp-config.php file and edit it as follows.
Toward the end of the file, just beneath the following:
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
…add the following code:
/* Set WordPress temporary directory */
define('WP_TEMP_DIR', ABSPATH . 'wp-content/temp');
Make sure the directory path is shown (e.g., ‘wp-content/temp’) matches the new directory you created above.
This line of code tells WordPress to use the new directory when downloading plugins during the update process.
Save and re-upload the wp-config.php file replacing the previous version.
Is the Plugin Distribution Good?
While unlikely to be the source of your issue, check with the plugin developer and see if others have encountered a similar issue. Some plugins, such as Elementor Pro, experience issues with the automatic update process. Sweeping changes to a plugin may also result in a need for a manual update of the plugin.
Manually Update the Plugin
If the automatic plugin update features continue to fail, you may need to update the plugin file manually.
- First, download a copy of the latest version of the plugin from the source (WordPress.org or the developer’s website)
- Secondly, ensure you have a backup of the current plugin version installed on your server (the old version, that is). You can download a copy via SFTP, your control panel, or a complete backup of your site from your host.
- Then, on the WordPress admin plugins page, deactivate and delete the old version of the plugin.
- Next, upload the extracted plugin files to the WordPress directory (typically, /wp-content/plugins/).
- Activate the new version of the plugin on the WordPress plugin page and test its function.