sfw/fix
Dest. Folder Exists medium

Installation Failed: Destination Folder Already Exists

A leftover directory from a failed or interrupted install is blocking WordPress from extracting the new plugin or theme.

What you see

Installation failed: Destination folder already exists. /home/user/public_html/wp-content/plugins/woocommerce/

What’s actually happening

You upload a plugin or theme zip, or hit update, and the install dies immediately with this message. The path it names is the folder that's in the way. The plugin often shows as not installed even though its directory clearly exists on disk. Happens a lot right after a previous install timed out, ran out of memory, or got cut off mid-extraction.

Common causes

  • A prior install or update was interrupted (PHP timeout, hitting memory_limit, a dropped connection) and left a half-extracted folder behind that WordPress now refuses to overwrite.
  • You're trying to install a plugin you already have but didn't fully remove — the active folder is still there.
  • A migration or staging copy left orphaned directories under wp-content/plugins or wp-content/themes.
  • A failed auto-update left the real folder plus an upgrade temp folder side by side.

How to fix it

  1. Use the Replace Current with Uploaded buttonOn modern WordPress (5.5+), this exact error screen shows a comparison table with a blue "Replace current with uploaded" button. Click it. WordPress overwrites the old folder with the version you just uploaded. This is the one-click fix and works for the large majority of cases.
  2. Delete the named folder over SFTPIf there's no Replace button, connect with FileZilla or your host's File Manager and go to the exact path in the error — e.g. wp-content/plugins/woocommerce/. Delete that folder, then retry the install from the dashboard. If it's an active plugin you're reinstalling, deactivate it first so you don't break a live dependency.
  3. Clear out leftover upgrade temp foldersCheck wp-content/upgrade/ and wp-content/ for stray directories like the plugin name with a random suffix, or an upgrade-temp-backup folder. These are debris from failed updates and are safe to delete. They can also be what's tripping the check.
  4. Fix the timeout that caused it in the first placeIf installs keep dying partway through, the root cause is usually a low limit. Raise it: set define('WP_MEMORY_LIMIT', '256M'); in wp-config.php and ask your host to bump max_execution_time to 300. Otherwise you'll keep generating new orphaned folders.

Stop it recurring

Don't navigate away or close the tab mid-install, and keep PHP memory_limit at 256M so extractions finish cleanly.

Related errors