Repair

How to Fix the “Package Could Not Be Installed” Error in WordPress

Illustration of a WordPress plugin installation error, showing a warning symbol, troubleshooting tools, and a successful installation.

Trying to install a WordPress theme or plugin, only to receive a message saying "The package could not be installed"?

This error can appear when WordPress cannot recognise, extract or install the files you’ve uploaded. Sometimes the problem is as simple as choosing the wrong ZIP file. Other times, it involves missing theme files, an invalid plugin package, incompatible software or a server configuration issue.

The important thing is that "The package could not be installed" isn’t a single error with one solution. WordPress usually displays another message explaining what went wrong.

In this guide, we’ll help you identify that message, understand its likely cause and fix the installation problem without making unnecessary changes to your website.

What does "The package could not be installed" mean?

WordPress normally handles theme and plugin installations automatically.

When you upload a ZIP file, WordPress needs to receive it, unpack it, identify the software and place the files in the correct directory.

If any part of that process fails, the installation may stop.

For example, you might see:

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

Or:

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

These messages point towards different problems.

The first suggests WordPress cannot identify the uploaded files as a valid theme. The second indicates it cannot find a valid plugin in the uploaded package.

Other installation errors can involve server resources, permissions or software compatibility.

Identify your specific error first

Before changing settings or uploading files again, check the complete message displayed by WordPress.

Error or symptom What to investigate first
Missing style.css stylesheet Incorrect theme ZIP or missing required theme files
No valid plugins were found Incorrect plugin ZIP or missing plugin header
Incompatible Archive ZIP format, archive integrity or extraction support
Requires a newer PHP or WordPress version Software compatibility requirements
Could not create directory File ownership, permissions, storage or temporary directories
Destination folder already exists An existing installation or leftover files
Upload exceeds the maximum size PHP, hosting or server upload limits

The wording can vary between WordPress versions and installation methods.

Start with the explanation that accompanies the error, rather than attempting every possible fix.

1. Check that you’re uploading the correct ZIP file

One of the most common causes of installation errors is uploading the wrong package.

This frequently happens with premium themes and plugins purchased from third-party marketplaces.

A download might contain:

  • The actual installable theme or plugin ZIP.
  • Documentation and installation instructions.
  • Licensing information.
  • Demo content.
  • Child themes or companion plugins.
  • Other supporting files.

The complete download isn’t necessarily the file WordPress expects you to install.

Check the package contents

Locate the original download on your computer.

If the publisher provides a separate Installable WordPress file, use that version.

Otherwise, inspect the download for a ZIP specifically intended for installation.

For example, a theme marketplace download might look like this:

theme-download/
    documentation/
    demo-content/
    theme-name.zip
    theme-name-child.zip
    licence.txt

In this example, theme-name.zip is the likely installation package, while the other files serve different purposes.

Don’t upload the entire download archive unless the publisher specifically instructs you to.

Use the correct WordPress installation screen

For a theme, navigate to:

Appearance > Themes > Add Theme > Upload Theme

For a plugin, navigate to:

Plugins > Add New Plugin > Upload Plugin

Select the appropriate installable ZIP and follow the installation instructions.

A theme package uploaded through the plugin installer won’t be recognised as a plugin.

Likewise, a plugin package uploaded through the theme installer won’t become a valid theme.

If you’re unsure which file to choose, consult the software publisher’s documentation before trying another upload.

2. Fix the missing style.css stylesheet error

If WordPress displays:

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

It means WordPress couldn’t locate the required theme stylesheet in the expected location.

Every WordPress theme needs a style.css file containing information that identifies the theme.

This file normally sits directly inside the theme’s main directory.

Check the theme’s folder structure

A simplified theme package might look like:

theme-name/
    style.css
    functions.php
    index.php
    assets/

This example represents a conventional classic theme.

The essential point is that style.css belongs in the theme’s root directory, not inside an unrelated documentation or assets folder.

If you inspect your downloaded ZIP and find another ZIP inside it, you may have received a complete distribution package rather than the installable theme.

Look for the publisher’s designated installation file.

What should be inside style.css?

The file needs a valid theme header.

For example:

/*
Theme Name: Example Theme
*/

The Theme Name field identifies the theme to WordPress.

However, simply creating a file with this header won’t turn an incomplete package into a working theme.

The remaining required theme structure and files must also be present.

If you’ve downloaded a commercial theme and the stylesheet is genuinely missing, obtain a complete installation package from its developer.

Don’t try to repair a third-party theme by randomly moving or creating files.

For more information, see the official WordPress theme stylesheet documentation.

3. Check whether it’s a classic, block or child theme

Not every WordPress theme uses the same file structure.

This matters because older installation tutorials often describe files that aren’t required for modern block themes.

Classic WordPress themes

A standalone classic theme needs a valid style.css file and an index.php template.

A minimal example is:

classic-theme/
    style.css
    index.php

Many classic themes include additional files, such as header.php, footer.php, single.php and functions.php.

However, those additional files aren’t universally required for WordPress to recognise a valid standalone classic theme.

Block themes

A modern block theme uses HTML templates rather than relying on a classic index.php template.

A simplified block theme structure looks like this:

block-theme/
    style.css
    templates/
        index.html
    theme.json

The essential files for a standalone block theme include:

  • style.css, containing the theme information.
  • templates/index.html, providing the fallback block template.

Other files, including theme.json, are important for theme configuration and functionality but aren’t all required merely for WordPress to identify the theme.

See the official WordPress theme structure guide for further details.

Child themes

A child theme inherits functionality and templates from its parent theme.

Its style.css file must contain a Template header identifying the parent theme’s directory.

For example:

/*
Theme Name: Example Child Theme
Template: example-parent
*/

The Template value must match the parent theme’s actual folder name.

The corresponding parent theme must also be installed and valid for the child theme to work correctly.

A child theme therefore doesn’t necessarily need the same standalone template structure as a parent theme.

If your installation complains about a missing parent theme or template, check the publisher’s instructions and ensure the correct parent theme is installed.

Avoid making arbitrary changes to the Template header without confirming the intended parent theme.

For further guidance, see the WordPress child themes documentation.

4. Fix "No valid plugins were found"

Another common installation message is:

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

This normally indicates that WordPress couldn’t identify a valid plugin inside the uploaded ZIP file.

Check the plugin package

A typical plugin package might contain:

example-plugin/
    example-plugin.php
    includes/
    assets/
    readme.txt

WordPress identifies a plugin through a specially formatted header in its main PHP file.

For example:

<?php
/*
Plugin Name: Example Plugin
*/

The Plugin Name header is the minimum required field.

A plugin can include many other files, but WordPress must be able to recognise its main plugin file.

Why this error happens

You may have:

  • Uploaded a general download package instead of the installable plugin ZIP.
  • Selected a theme ZIP rather than a plugin.
  • Downloaded an incomplete or corrupted package.
  • Received a package with an incorrect directory structure.
  • Downloaded files that aren’t actually a WordPress plugin.

Check whether the publisher provides a dedicated installation ZIP.

If the package has been supplied by a developer, ask them to confirm that it contains a valid WordPress plugin.

Don’t add an arbitrary plugin header to an unknown PHP file just to make the installer accept it.

Check the official plugin documentation

The WordPress Plugin Handbook explains the required plugin headers and how WordPress identifies plugins.

If a package doesn’t meet those requirements, its publisher should provide a corrected version.

5. Fix a corrupted or incompatible ZIP archive

WordPress needs to be able to open and extract the installation archive.

If the ZIP file is damaged, incomplete or uses an unsupported format, WordPress may report an extraction failure or an Incompatible Archive error.

Download the file again

Return to the official plugin directory, theme directory or software developer’s website.

Download a fresh copy of the installation package.

Avoid using unofficial download mirrors or modified copies of premium software.

A failed or interrupted download can produce an archive that looks correct but cannot be extracted properly.

Check that the ZIP opens

Before uploading it again, try opening the archive using a trusted archive utility on your computer.

You should be able to inspect the files without encountering corruption warnings.

For a theme, look for its required theme files.

For a plugin, look for its main PHP file and the accompanying plugin files.

If the archive won’t open locally, obtain another copy from the original publisher.

Avoid unnecessarily repackaging the archive

Some websites distribute installation archives that are already correctly packaged.

Extracting and recompressing these files can accidentally introduce additional directory levels or change the archive structure.

If you do need to create an archive, follow the developer’s packaging instructions.

ZIP compatibility has also varied between WordPress versions and archive creation methods, so using a supported WordPress version and a properly generated ZIP matters.

If a fresh package still produces an Incompatible Archive error, ask the software developer and hosting provider to investigate the specific extraction failure.

6. Check WordPress and PHP compatibility

A theme or plugin can be correctly packaged but still be incompatible with your website.

Developers can declare minimum WordPress and PHP version requirements.

For example, a plugin might require a newer PHP version than your server currently provides.

WordPress may display a specific message explaining that the software requires a different version.

Check your WordPress version

Navigate to:

Dashboard > Updates

You can check which WordPress version your website is running.

Compare it with the plugin or theme’s published requirements.

Check your PHP version

Navigate to:

Tools > Site Health > Info > Server

Look for the PHP version reported for your website.

Compare it with the software publisher’s minimum PHP requirement.

Don’t upgrade PHP blindly

Updating an outdated PHP version can be important for security and compatibility.

However, changing PHP affects the entire website, not just the software you’re trying to install.

Before upgrading, make sure your theme, plugins and other important functionality support the proposed version.

Take a recent backup and test the change where possible.

If the installation package requires a newer WordPress or PHP version, don’t attempt to bypass the compatibility check by editing its version requirements.

Use a supported version of the software or plan the necessary platform updates safely.

Check for plugin dependencies

Some WordPress plugins depend on other plugins to provide essential functionality.

These dependencies may be declared in the plugin’s metadata or documented by its developer.

If the installation or activation process reports missing dependencies, confirm which components are required.

Install them from trusted sources and follow the publisher’s instructions.

A missing dependency is different from an invalid ZIP package, so it requires a different solution.

7. Check WordPress upload limits and server resources

Sometimes the installation file is valid, but WordPress can’t complete the upload or extraction process.

This can happen when the server doesn’t have sufficient resources or when the upload exceeds a configured limit.

Check the maximum upload size

If the package is too large for the current PHP or hosting configuration, WordPress may reject the upload before installation begins.

Check the website’s upload limit through WordPress Site Health or your hosting control panel.

The most relevant PHP settings include:

  • upload_max_filesize, which limits the size of an individual uploaded file.
  • post_max_size, which limits the total POST request size.

Your web server or security proxy may enforce additional restrictions.

If the package exceeds the permitted limit, follow our guide to increasing the maximum WordPress upload size.

Don’t change upload settings unless the error indicates that the existing limit is responsible.

Check available disk space

WordPress may need temporary storage while downloading, extracting and installing packages.

It also needs enough free space for the final files.

If the server or hosting account has insufficient storage, the installation may fail even when the ZIP itself is valid.

Check your hosting storage usage and filesystem quotas.

Remember that extracting a ZIP can require substantially more space than the compressed archive alone.

Check temporary directories

WordPress and PHP may use temporary directories during uploads and package extraction.

These directories must exist and be accessible to the relevant processes.

A missing or inaccessible temporary directory can interrupt installation.

The temporary directory used by PHP isn’t necessarily the same directory as wp-content/uploads.

If the logs indicate a temporary file or directory failure, ask your hosting provider to investigate the relevant configuration and permissions.

Check PHP and ZIP extraction support

WordPress relies on available PHP and filesystem capabilities to unpack installation archives.

If archive extraction repeatedly fails across unrelated, verified packages, your hosting environment may have a problem with the available extraction methods or temporary storage.

Review the specific error and server logs rather than increasing unrelated PHP limits.

8. Check file permissions and ownership

File permissions problems can prevent WordPress from creating directories, moving extracted files or replacing installed software.

For example, you may see:

Could not create directory.

Or:

Could not copy file.

These messages warrant checking filesystem access.

However, they don’t automatically mean that your files should be set to a particular permission number.

Inspect the relevant directories

The affected location may be:

wp-content/plugins/

Or:

wp-content/themes/

WordPress needs an appropriate way to write files to these locations during installation.

That access depends on your hosting setup, file ownership and the filesystem method WordPress is using.

Don’t apply 777 permissions

Setting a directory to 777 may appear to resolve a write restriction, but it provides unnecessarily broad access.

It’s not an appropriate general fix.

Similarly, setting all directories to 755 and all files to 644 may not resolve an ownership problem.

For a detailed explanation, see our guide to fixing WordPress file permissions issues.

Ask your host to check ownership

If the permissions appear normal but WordPress still can’t write files, the operating system user running PHP may not have the required access.

This can happen following a migration, restoration or hosting configuration change.

Your hosting provider can check whether file ownership and the PHP execution user are configured correctly.

Avoid changing ownership recursively without understanding the server’s account structure.

9. Resolve "Destination folder already exists"

WordPress may report that the installation destination already exists.

This usually means the directory where WordPress wants to place the theme or plugin is already present.

Possible explanations include:

  • The plugin or theme is already installed.
  • A previous installation was interrupted.
  • Files remain from a failed or incomplete installation.
  • You’re attempting to install a package with the same folder name as existing software.

Check whether the software is installed

For a plugin, go to:

Plugins > Installed Plugins

For a theme, go to:

Appearance > Themes

Look for the software you’re trying to install.

If it’s already installed, check its version before taking further action.

If you’re updating existing software

WordPress supports updating plugins and themes through its normal update process.

In supported circumstances, uploading a replacement ZIP may also present a comparison between the installed version and the uploaded version, with an option to replace the existing software.

Review the software name, version information and source carefully before proceeding.

Take a recent backup, especially when replacing premium software or a customised installation.

Don’t overwrite a modified theme or plugin without confirming how those modifications will be preserved.

If a previous installation failed

A failed installation can sometimes leave an incomplete directory.

Before removing anything, confirm whether the directory belongs to an existing plugin, theme or another component.

Deleting the wrong directory can disable functionality or remove custom files.

If you’re unsure, ask your hosting provider or a WordPress technician to investigate.

Don’t delete an existing plugin or theme folder simply because WordPress reports that the destination already exists.

10. Install a verified package manually using SFTP

If the ZIP is valid but WordPress’s automatic installation process cannot complete, manual installation may be an option.

However, it isn’t a solution for a missing stylesheet, invalid plugin header or otherwise broken package.

Manual installation should only be considered after confirming that the files are legitimate and correctly structured.

Before you begin

Take a current website backup.

Use software obtained from its official developer or another trusted source.

Confirm that you have secure access to the correct WordPress installation directory.

SFTP is generally preferable to unencrypted FTP because it transfers data through an encrypted SSH connection.

Installing a new plugin

For a new plugin that isn’t already installed:

  1. Download the correct plugin ZIP from its publisher.
  2. Extract the archive on your computer.
  3. Confirm that it contains a valid WordPress plugin.
  4. Connect to the server using SFTP.
  5. Navigate to wp-content/plugins.
  6. Upload the extracted plugin directory.
  7. Return to Plugins > Installed Plugins.
  8. Confirm that WordPress recognises the plugin before activating it.

The official WordPress plugin installation guide covers manual installation in more detail.

Installing a new theme

For a new theme that isn’t already installed:

  1. Obtain the correct theme package.
  2. Extract it and verify the required theme files.
  3. Connect to your website through SFTP.
  4. Navigate to wp-content/themes.
  5. Upload the complete theme directory.
  6. Return to Appearance > Themes.
  7. Confirm that WordPress recognises the theme.

If it’s a child theme, make sure the correct parent theme is installed.

Don’t activate a new theme on a live website without considering the effect on its appearance and functionality.

What about replacing existing software?

Replacing an existing plugin or theme through SFTP involves additional risks.

You may overwrite customisations, interrupt a running website or leave a partially updated installation.

Where possible, use WordPress’s supported update process.

If manual replacement is necessary, it should be planned with a backup, rollback procedure and appropriate testing.

11. Verify that the installation worked

Once WordPress reports a successful installation, check the result.

Installation and activation are separate stages.

For plugins

Navigate to Plugins > Installed Plugins.

Confirm that the plugin appears with the expected name and version.

If you’re ready to activate it, follow the publisher’s instructions.

Then check the functionality that the plugin provides.

A plugin can install successfully but still encounter a separate problem when activated or used.

For themes

Navigate to Appearance > Themes.

Confirm that WordPress recognises the theme and displays the expected information.

If the theme is already active or you’re planning to activate it, check the website’s appearance and key functionality.

Where practical, test a new theme on a staging website first.

Review warnings and logs

If the installation completed but warnings appeared, investigate them before considering the issue resolved.

Check relevant WordPress, PHP and web server logs where available.

A successful installation message doesn’t necessarily mean the installed software is functioning correctly.

12. What if the package still won’t install?

If the error persists, use the following checks to narrow down the cause.

Test with a known valid package

Where appropriate, compare the behaviour with a small, trusted plugin or theme obtained from WordPress.org.

Only perform this test if installing the additional software is appropriate for the website.

If every valid package fails with a similar server error, the problem may lie with hosting or filesystem access rather than the original ZIP.

If only one package fails, investigate that package and its requirements.

Check the exact error in the logs

PHP and web server logs can reveal problems that aren’t obvious from the WordPress dashboard.

Look for messages involving:

  • Archive extraction.
  • Failed filesystem operations.
  • Missing temporary files.
  • PHP errors.
  • Insufficient storage.
  • Timeouts.
  • Compatibility failures.

Use the findings to guide the next step.

Avoid unrelated troubleshooting changes

Clearing browser cookies, disabling unrelated plugins or modifying server settings at random is unlikely to repair an invalid installation package.

Such changes may create additional problems and make the original issue harder to diagnose.

If the evidence indicates a conflict or security restriction, investigate that particular component.

Otherwise, avoid introducing unnecessary changes.

Contact the software developer or hosting provider

The software developer is generally best placed to investigate an invalid or incorrectly packaged theme or plugin.

The hosting provider is better placed to investigate filesystem access, server resources and archive extraction failures.

When requesting assistance, provide the complete error message, the software name and version, your WordPress and PHP versions, and the steps you’ve already taken.

Frequently asked questions

Why does WordPress say the theme is missing style.css?

WordPress couldn’t find the required theme stylesheet in the expected location.

You may be uploading a general download archive rather than the actual installable theme ZIP.

Download the correct package and check its structure before attempting another installation.

Can I install a WordPress theme without style.css?

A WordPress theme needs a valid style.css file containing its theme header.

This applies to both classic and block themes.

Their template requirements differ, but the stylesheet remains necessary for WordPress to identify the theme.

What does "No valid plugins were found" mean?

WordPress couldn’t identify a valid plugin within the uploaded package.

The ZIP might contain unrelated files, use the wrong directory structure or lack a recognisable main PHP file with the required plugin header.

Obtain the correct installable plugin ZIP from its publisher.

Can I install a theme ZIP through the Plugins screen?

No.

Themes and plugins have different package structures and use different installation interfaces.

Upload a theme through Appearance > Themes and a plugin through Plugins > Add New Plugin.

Does increasing the WordPress upload limit fix package installation errors?

Only when the failure is actually caused by an upload size restriction.

A larger upload limit won’t correct a missing stylesheet, invalid plugin header or broken archive.

Check the exact error before changing PHP or hosting settings.

Should I change file permissions to 777?

No.

That would provide unnecessarily broad filesystem access and may introduce security risks.

If the installation fails because WordPress cannot write files, investigate the required ownership and permissions instead.

Can I install the plugin manually if the ZIP is invalid?

Manual installation doesn’t make an invalid plugin valid.

The package must still contain a recognisable WordPress plugin and meet its requirements.

Use manual installation only when you’ve confirmed the software is valid and the normal installer cannot complete for another reason.

What if the installation succeeds but activation fails?

That is a separate problem.

The package may have installed correctly while the plugin or theme encounters a PHP error, compatibility issue or another problem during activation.

Check the activation error and relevant logs.

Our guide to common WordPress errors covers broader troubleshooting steps.

Need help fixing a WordPress installation error?

The "Package Could Not Be Installed" error is often straightforward to fix once you identify the underlying cause.

But if a valid theme or plugin repeatedly fails to install, the problem may involve filesystem access, compatibility or your hosting environment.

At Newt Labs, we help website owners diagnose and repair WordPress problems, including plugin installation failures, theme errors and server configuration issues.

If your installation keeps failing, our one-off WordPress website repair service can help identify the cause and resolve it safely.

For ongoing support with WordPress updates, security and maintenance, explore our WordPress maintenance plans.

About the author

Steven Watts

Steven is the founder of Newt Labs and a WordPress specialist with more than 15 years of experience. Since 2010, he has been helping businesses keep their WordPress websites secure, fast, reliable and well supported, with a focus on practical advice and long-term website care.

Related advice

More Repair articles

Need a clearer next step?

Get practical help with your WordPress website

You can start with one issue, a free audit, or an ongoing care plan depending on what your website needs.

WordPress support illustration.