# Stumped by "corrupt" extension

**URL:** <https://discourse.mozilla.org/t/stumped-by-corrupt-extension/134418>\
**Category:** Add-on Support\
**Created:** [August 1, 2024, 9:10am UTC](https://discourse.mozilla.org/t/stumped-by-corrupt-extension/134418 "2024-08-01T09:10:06Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![code1](https://avatars.discourse-cdn.com/v4/letter/c/ccd318/32.png) [@code1](https://discourse.mozilla.org/u/code1)\
**Post date:** [August 1, 2024, 9:10am UTC](https://discourse.mozilla.org/t/stumped-by-corrupt-extension/134418/1 "2024-08-01T09:10:06Z")

</div>

I have made an extension which works just fine as a temporary add-on, but when I go ahead and create a .zip file (with only the relevant files in the manifest.json paths) i get an error that the extension can not be installed because it appears to be corrupt.  
I also tried firefox extension validator, which does not find any problems or error.

Any ideas what to try next? Totally stumped.  
The extension is at

> **[GitHub - arttuheinila/netflix\_timer: Netflix sleep timer extension](https://github.com/arttuheinila/netflix_timer)**
>
> Netflix sleep timer extension

P.S. this is my first extension

---

<div class="post-metadata">

**Author:** ![juraj.masiar](https://sea1.discourse-cdn.com/flex001/user_avatar/discourse.mozilla.org/juraj.masiar/32/30587_2.png) [@juraj.masiar](https://discourse.mozilla.org/u/juraj.masiar)\
**Post date:** [August 1, 2024, 11:56am UTC](https://discourse.mozilla.org/t/stumped-by-corrupt-extension/134418/2 "2024-08-01T11:56:48Z")

</div>

Hello,  
What tool did you used to create the zip?  
And did you zipped only the contents of the folder?  
See also:

> **[Package your extension](https://extensionworkshop.com/documentation/publish/package-your-extension/)**
>
> Get help creating & publishing Firefox extensions.

> **[Your first extension - Mozilla | MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension)**
>
> This article walks through creating an extension for Firefox, from start to finish. The extension adds a red border to any pages loaded from "mozilla.org" or any of its subdomains.

---

<div class="post-metadata">

**Author:** ![hans\_squared](https://sea1.discourse-cdn.com/flex001/user_avatar/discourse.mozilla.org/hans_squared/32/67424_2.png) [@hans\_squared](https://discourse.mozilla.org/u/hans_squared)\
**Post date:** [August 1, 2024, 11:56am UTC](https://discourse.mozilla.org/t/stumped-by-corrupt-extension/134418/3 "2024-08-01T11:56:54Z")

</div>

> [@code1](#):
>
> when I go ahead and create a .zip file (with only the relevant files in the manifest.json paths) i get an error that the extension can not be installed because it appears to be corrupt.

You’re getting the error because the extension doesn’t have an ID.

[Extensions and the add-on ID \> When do I need an add-on ID?](https://extensionworkshop.com/documentation/develop/extensions-and-the-add-on-id/#when-do-you-need-an-add-on-id)

> For Manifest V2 extensions, you need to add an add-on ID when:  
> You want to install an unsigned add-on from its XPI file, rather than loading it temporarily using `about:debugging` .

You can set the ID with [browser\_specific\_settings](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_specific_settings).

But then you get a different error:  
This add-on could not be installed because it has not been verified.

The error means that the extension is unsigned, but you can install it in one of the “special” Firefox versions:

[Signing and distributing your add-on \> Signing your add-ons](https://extensionworkshop.com/documentation/publish/signing-and-distribution-overview/#signing-your-addons)

> Unsigned extensions can be installed in the [Developer Edition](https://www.mozilla.org/firefox/developer/), [Nightly](https://www.mozilla.org/firefox/nightly/all/), and [ESR](https://www.mozilla.org/firefox/organizations/) versions of Firefox, after toggling the `xpinstall.signatures.required` preference in `about:config` . To use this feature your extension must have an [add-on ID](https://extensionworkshop.com/documentation/develop/extensions-and-the-add-on-id/).

edit:  
I’m assuming that you install the extension in about:addons, with:

1. Tools for all add-ons (the gear icon to the right of “Manage Your Extensions”)
2. Install Add-on From File

---

<div class="post-metadata">

**Author:** ![code1](https://avatars.discourse-cdn.com/v4/letter/c/ccd318/32.png) [@code1](https://discourse.mozilla.org/u/code1)\
**Post date:** [August 2, 2024, 6:51am UTC](https://discourse.mozilla.org/t/stumped-by-corrupt-extension/134418/4 "2024-08-02T06:51:23Z")

</div>

Thank you so much! Now getting it to work, finally. Would still be banging my head on the wall without this
