# Error: unable to install plugin (extraction failure)

**URL:** https://forums.creativeclouddeveloper.com/t/error-unable-to-install-plugin-extraction-failure/1870
**Category:** UXP Plugin API
**Tags:** showcase
**Created:** [June 24, 2020, 4:03pm UTC](https://forums.creativeclouddeveloper.com/t/error-unable-to-install-plugin-extraction-failure/1870 "2020-06-24T16:03:31Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Jojo](https://avatars.discourse-cdn.com/v4/letter/j/ecd19e/32.png) [@Jojo](https://forums.creativeclouddeveloper.com/u/Jojo)
#### Post date: [June 24, 2020, 4:03pm UTC](https://forums.creativeclouddeveloper.com/t/error-unable-to-install-plugin-extraction-failure/1870/1 "2020-06-24T16:03:31Z")

</div>

Hey,

I would like to publish my plugin, but unfortunatelly I get following error massage after zipping and renaming the .zip file (into a .xdx file):

> **Unable to install Plugin**  
> Failed to install “myPlugin”: extraction failure.

I looked for a solution in the Adobe Help Center, but I couldn’t find out what’s wrong.

- the .zip file is way less den 25MB and also contains less than 3.000 files
- the manifest.json and the main.js are existing (I guess that’s the so named “plug-in files”)
- I have enough disk space

I also have three subfolders in the plugin parentfolder - do I have to have all files in the parentfolder or can I have subfolders?  
And I zipped the files and the folders in the plugin parentfolder not the parentfolder itself.

Any help would be great!!! 🙏  
Thanks a lot!  
Jojo

---

<div class="post-metadata">

### Author: ![cpryland](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/cpryland/32/1172_2.png) [@cpryland](https://forums.creativeclouddeveloper.com/u/cpryland)
#### Post date: [June 30, 2020, 5:32pm UTC](https://forums.creativeclouddeveloper.com/t/error-unable-to-install-plugin-extraction-failure/1870/2 "2020-06-30T17:32:13Z")

</div>

I think your best bet is to use `xdpm package` rather than zipping manually, etc.

---

<div class="post-metadata">

### Author: ![pklaschka](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/pklaschka/32/3162_2.png) [@pklaschka](https://forums.creativeclouddeveloper.com/u/pklaschka)
#### Post date: [June 30, 2020, 5:51pm UTC](https://forums.creativeclouddeveloper.com/t/error-unable-to-install-plugin-extraction-failure/1870/3 "2020-06-30T17:51:07Z")

</div>

Just to give a bit more background regarding this (as it may not be clear to everyone):

@cpryland is talking about xdpm, which is a CLI installable with `npm install -g @adobe/xdpm` (with [npm installed on your system](https://www.npmjs.com/get-npm)).

Its code and documentation can be found at [https://github.com/AdobeXD/xdpm](https://github.com/AdobeXD/xdpm).

All in all, I’d also recommend using `xdpm package` for additional reasons:

- it validates a few things (manifest etc.)
- it supports `.ignore` files like `.gitignore`
- it avoids having to first zip it, then rename the zip file and so on

To then package the plugin, you need to open a command line in your plugin folder and run `xdpm package` and it should “compile” a `.xdx` file for you.
