Skip to content
WordPress Support

Destination Folder Already Exists: Fix WordPress Installs

WordPress refuses to install a plugin or theme when a folder with the same name is already on the server. Here is how to find that folder, clear it safely and read the other install errors that often follow.

A laptop with code on screen in a dark room
9 sections · 9 min read
In this article · 9 sections

You clicked Install on a plugin, or uploaded a theme zip you paid for, and instead of the usual “Plugin installed successfully” WordPress stopped with a short grey line: “Destination folder already exists.” Underneath it says “Plugin installation failed” or “Theme installation failed”, and nothing else happens.

It looks alarming because it gives no hint about what to do next. In practice it is one of the more harmless messages WordPress shows. Nothing on the live site has broken. WordPress simply refused to overwrite a folder it found sitting where it wanted to put the new files. This post explains why that folder is there, how to clear it safely, and how to read the handful of other install errors that tend to appear alongside it.

What the message actually means

Every plugin lives in its own folder inside wp-content/plugins/, and every theme in its own folder inside wp-content/themes/. When you install something, WordPress downloads or receives a zip file, unpacks it into a temporary location under wp-content/upgrade/, and then moves the result into the plugins or themes folder using the folder name from inside the zip.

If a folder with that exact name is already there, WordPress stops. It does this on purpose. Overwriting a folder blindly could wipe out a working plugin, a customised theme or files someone added by hand. So the installer plays safe and reports “Destination folder already exists” rather than guessing.

Current versions of WordPress handle the most common version of this situation more gracefully. If you upload a zip for a plugin or theme that WordPress recognises as already installed, it usually shows a comparison of the current and uploaded versions with a button to replace the current one. The bare “Destination folder already exists” message tends to appear when WordPress finds the folder but cannot recognise a proper plugin or theme inside it.

Why the folder is already there: likely causes

1. A previous install or update was interrupted

This is the usual reason. An earlier attempt timed out, the browser tab was closed, the hosting account ran out of memory or disk space partway through, or the connection dropped. WordPress created the folder, copied some files, and never finished. The plugin does not show on the Plugins screen because its main file is missing or incomplete, yet the folder is still on the server, blocking every new attempt.

2. The plugin was “deleted” but its folder was not

Deleting from the Plugins screen normally removes the folder. If file permissions stopped WordPress from removing everything, or someone deleted only the main PHP file over FTP, a partial folder stays behind. Some plugins also create a folder of their own elsewhere, but the one that matters here is the folder in wp-content/plugins/ with the plugin’s own name.

3. You are installing a second copy under the same name

Free and premium editions of a plugin, or a theme bought from a marketplace and a copy installed earlier from somewhere else, sometimes use the same folder name. WordPress cannot hold two folders with one name, so the second install is refused.

4. Leftovers in the temporary upgrade folder

Less often, stale files inside wp-content/upgrade/ from an earlier failed job get in the way. Recent versions of WordPress also keep a short-lived safety copy of a plugin or theme in a folder named upgrade-temp-backup while an update runs, so that it can put the old version back if the update fails. Those folders are normally cleaned up on their own; you only need to look at them if the same error keeps coming back after you have dealt with the obvious cause.

Before you touch any files

You are about to delete a folder on the server, so make a copy you can return to first. A full site backup from your host or backup plugin is ideal. At the very least, download the folder you are about to remove to your computer. If it turns out to contain a setting or file someone added by hand, you will be glad you kept it. Either one gives you a way back.

How to fix “Destination folder already exists”, step by step

Step 1: Check whether the plugin or theme is really missing

Open Plugins → Installed Plugins (or Appearance → Themes) and look carefully, including on the “Inactive” filter. If the plugin is listed and works, you probably do not need to install it again; you need an update. If you were trying to upgrade a premium plugin by uploading its new zip, use the replace option WordPress offers when it detects the existing copy, or update it from inside the plugin’s own licence screen.

Step 2: Find the folder on the server

Log in to your hosting file manager (cPanel, Plesk and most hosting dashboards have one) or connect with an FTP/SFTP client such as FileZilla. Go to your WordPress folder, then wp-content/plugins/ or wp-content/themes/. Look for a folder matching the plugin or theme name. The name inside the zip is the one that matters, so if you are not sure, open the zip on your computer and note the top-level folder name.

Step 3: Look inside before deleting

Open the folder. A broken leftover is usually obvious: it is nearly empty, has a few files but no main PHP file, or has files dated to the day an earlier install failed. If the folder looks complete and recent, stop and think. It might be a working plugin that WordPress cannot read for another reason, such as a damaged main file or wrong permissions.

Step 4: Download, then delete or rename it

Download a copy, then either delete the folder or rename it to something like pluginname-old. Renaming is the cautious choice, because you can rename it back if something depended on it. WordPress ignores a folder it cannot match to a plugin name, so the renamed copy will not run.

Step 5: Install again

Go back to Plugins → Add New (or Themes → Add New) and repeat the installation. It should now go through. Activate it, check the settings page, then load a few pages of the site to make sure it behaves. Once you are happy, delete the renamed old folder.

Step 6: If it fails again, clean the temporary folder

If the same message returns, look inside wp-content/upgrade/. When no install or update is running, that folder can be emptied (keep the folder itself). Do not do this while an update is in progress elsewhere on the site.

Other install errors you may see next

Once the folder problem is out of the way, a different message sometimes takes its place. These are the ones that come up most often, in plain terms.

“The package could not be installed. No valid plugins were found.”

The zip you uploaded is not a plugin in the shape WordPress expects. Marketplaces often give you a bundle containing documentation, licence files and the real plugin zip inside it. Unpack the download on your computer and upload only the inner zip. You will also see this if you upload a theme through the plugin screen, or the other way round.

“The package could not be installed. The theme is missing the style.css stylesheet.”

The theme equivalent of the message above. Again, the actual theme zip is usually inside the file you downloaded. A theme must have a style.css in its top folder for WordPress to accept it.

“Installation failed: Could not create directory.”

WordPress has no permission to write into the plugins or themes folder. This is about file ownership and permissions on the server, which your host can correct. Our post on WordPress file permissions explains the usual settings without suggesting anything risky like making folders writable by everyone.

A message mentioning upload_max_filesize

The zip is larger than your server lets PHP accept. Large themes and page builders hit this on smaller hosting plans. See raising the upload size limit for safe ways to fix it, or upload the unpacked folder by FTP instead.

“Download failed.” or “Incompatible Archive.”

“Download failed” usually means the server could not reach the download source, which often comes down to outbound connection problems covered in our piece on cURL errors in WordPress. “Incompatible Archive” means the zip is damaged or not a real zip file. Download it again from the original source.

Installing by FTP instead of the dashboard

If the dashboard keeps failing, uploading by hand is a reasonable fallback. Unzip the plugin on your computer, check that you have a single folder with the plugin files inside, and upload that folder into wp-content/plugins/. Then visit the Plugins screen, where it should appear ready to activate. The same works for themes in wp-content/themes/.

The one trap is double nesting: a folder inside a folder of the same name. WordPress will not find the plugin if its main file sits two levels down. Open the uploaded folder on the server and make sure the main PHP file, or style.css for a theme, is directly inside it.

How to stop this happening again

  • Let installs finish. Do not close the tab or click away while WordPress shows the progress messages. Large plugins can take a while on slow hosting.
  • Keep an eye on disk space. A hosting account that is nearly full will fail halfway through unpacking and leave exactly this kind of broken folder. Old backups stored inside the site are a common cause.
  • Remove plugins from the dashboard, not by deleting single files. If you must remove one by FTP, remove the whole folder.
  • Download only from the developer or WordPress.org. Copies from file-sharing sites are a known route for malware, as our article on nulled themes and plugins explains, and they often come packaged in odd folder structures too.
  • Try new plugins on a copy first when the site matters to your business. An install that half-completes on a staging copy costs you nothing.

If you install plugins yourself now and then, our walkthrough on installing a WordPress plugin properly covers the basics, including checking when a plugin was last updated before you add it.

When it is a sign of something bigger

A single install error after a dropped connection is nothing to worry about. A pattern is different. If installs and updates fail repeatedly, if folders appear that nobody created, or if a plugin you deleted keeps coming back, something else is going on: permissions that have drifted, a hosting account under strain, or occasionally a compromised site re-adding its own files. Our wider guide to common WordPress errors and their fixes is a good place to see where this message fits, and if an install broke the site instead of simply failing, the steps for a WordPress site broken after an update apply.

Getting a hand with it

Most people can clear this error in a few minutes with a file manager. If you would rather not go poking around server folders, or the error keeps returning after you have tried the steps above, send us the exact message and the plugin or theme name on WhatsApp. We will take a backup, look at what is actually sitting in the folder, and tell you what we found. Our WordPress bug fixing service covers this kind of one-off problem.

Next in this series: WordPress Automatic Update Failed? Read the Email First

Is Your Website Working Properly?

Get a free website health check from WebMaintor. We'll review your website's speed, security, forms, and technical health — and tell you exactly what needs attention.

No obligation. No automated reports. A real review by our team.