WebExtError “unsupported filetype” when trying to sign a locally built extension

I’m trying to package and sign an extension for my personal use so that I don’t have to reload it manually via about:debugging#/runtime/this-firefox each time I restart the browser. I don’t intend to publish it. When I run:

web-ext sign --channel=unlisted --api-key="<API_KEY>" --api-secret="<API_SECRET>"

I get the following error:

WebExtError: Validation failed:  
… "message": "Unsupported file type, please upload a supported file (.crx, .xpi, .zip)."  

I must be missing something but I haven’t been able to find anything that fixes it.

Hm… I’m not quite sure what’s going on. That error is returned by AMO and it indicates that something unexpected got uploaded. A couple of questions to help debug:

  1. For context, what OS (+ version) are you using?
  2. What version of Node and web-ext are you using? (use node --version and web-ext --version to retrieve these values)
  3. Are you calling web-ext from the directory that contains the built/run-able version of your extension?
  4. Can you share your web-ext logs when run with the --verbose flag?

I’m on Ubuntu 20.04, node version 24.0.0, web-ext 8.6.0, I’m running web-ext sign … --verbose from the same directory that I load in about:debugging#/runtime/this-firefox. I also see the same error when I try to rebuild an extension from the Firefox Add-ons Marketplace.
Here are the logs:

[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/program.js][info] Version:
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/program.js][debug] Discovering config files. Set --no-config-discovery to disable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[user]/.web-ext-config.mjs" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[user]/.web-ext-config.cjs" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[user]/.web-ext-config.js" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[path_to_the_extension_folder]/package.json" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[path_to_the_extension_folder]/web-ext-config.mjs" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[path_to_the_extension_folder]/web-ext-config.cjs" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[path_to_the_extension_folder]/web-ext-config.js" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[path_to_the_extension_folder]/.web-ext-config.cjs" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[path_to_the_extension_folder]/.web-ext-config.mjs" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/config.js][debug] Discovered config "/home/[path_to_the_extension_folder]/.web-ext-config.js" does not exist or is not readable
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/temp-dir.js][debug] Created temporary directory: /tmp/tmp-web-ext--2123491-hQDwbIz8m2K5
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/artifacts.js][debug] Creating artifacts directory: /home/[path_to_the_extension_folder]/web-ext-artifacts
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/manifest.js][debug] Validating manifest at /home/[path_to_the_extension_folder]/manifest.json
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path **/*.xpi with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/**/*.xpi
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path **/*.zip with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/**/*.zip
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path **/.* with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/**/.*
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path **/.*/**/* with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/**/.*/**/*
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path **/node_modules with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/**/node_modules
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path **/node_modules/**/* with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/**/node_modules/**/*
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/cmd/build.js][info] Building web extension from /home/[path_to_the_extension_folder]
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/cmd/sign.js][debug] No ID file found at: /home/[path_to_the_extension_folder]/.web-extension-id
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/cmd/build.js][debug] Using manifest id=[not specified]
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path /home/[path_to_the_extension_folder]/background.js with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/background.js
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path /home/[path_to_the_extension_folder]/content.js with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/content.js
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path /home/[path_to_the_extension_folder]/icons with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/icons
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path /home/[path_to_the_extension_folder]/manifest.json with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/manifest.json
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path /home/[path_to_the_extension_folder]/web-ext-artifacts with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/web-ext-artifacts
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/file-filter.js][debug] Resolved path /home/[path_to_the_extension_folder]/icons/icon-48.png with sourceDir /home/[path_to_the_extension_folder] to /home/[path_to_the_extension_folder]/icons/icon-48.png
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/cmd/sign.js][warn] No extension ID specified (it will be auto-generated the first time)
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/submit-addon.js][debug] No upload uuid file found at: /home/[path_to_the_extension_folder]/.amo-upload-uuid
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/submit-addon.js][debug] POSTing URL: https://addons.mozilla.org/api/v5/addons/upload/
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/submit-addon.js][info] Waiting for validation...
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/submit-addon.js][debug] GETing URL: https://addons.mozilla.org/api/v5/addons/upload/d87b180d620b4915868feee7169fc11c/
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/submit-addon.js][debug] Validation results:
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/util/temp-dir.js][debug] Removing temporary directory: /tmp/tmp-web-ext--2123491-hQDwbIz8m2K5
[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/program.js][error] 
WebExtError: Validation failed:
{
  "errors": 1,
  "warnings": 0,
  "notices": 0,
  "success": false,
  "compatibility_summary": {
    "notices": 0,
    "errors": 0,
    "warnings": 0
  },
  "metadata": {
    "listed": true
  },
  "messages": [
    {
      "tier": 1,
      "type": "error",
      "id": [
        "validation",
        "messages",
        "unsupported_filetype"
      ],
      "message": "Unsupported file type, please upload a supported file (.crx, .xpi, .zip).",
      "description": [],
      "compatibility_type": null,
      "extra": true
    }
  ],
  "message_tree": {},
  "ending_tier": 5
}
    at file:///home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/cmd/sign.js:101:13
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async Program.execute (file:///home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/program.js:270:7)
    at async file:///home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/bin/web-ext.js:13:1

[/home/[user]/.nvm/versions/node/v24.0.0/lib/node_modules/web-ext/lib/program.js][debug] Command executed: sign```

Thanks for the additional detail. I’m reaching out to another team member to help investigate.

I had the same issue. Downgrading web-ext to version 8.2.0 resolved the issue.

1 Like

@Ahmed_Abdelaziz or @user0289734569678245, could you file a bug report on the web-ext issue tracker? :folded_hands:

@dotproto Done so. Unsupported file type, please upload a supported file (.crx, .xpi, .zip). · Issue #3418 · mozilla/web-ext · GitHub

1 Like

@user0289734569678245 What’s your node version? Updating node from version v20.19.0 to v22.16.0 fixed the issue for me.

My node version is 24.0.0, but I managed to fix the problem by downgrading web-ext as you suggested in your previous message.

Any news on this ? I going a bit crazy with this one as it doesn’t seam to be constant. I think I have it working and then it doesn’t anymore. The same code worked in my CI/CD pipeline but not locally… Even with version 8.2.0

Could it be related to a dependency ? At some point I have form-data:4.0.3 and it failed and downgrading to form-data:4.02 made it work… But then later it stopped working.

Is it web-ext or an issue on the addons API ? I had the same error trying to follow the api before I fell on web-ext ?

I haven’t had any luck. @Ahmed_Abdelaziz opened #3418 on the web-ext repo to track this. Conversation there indicates that there may be a compatibility bug with recent versions of Node.js. Based on this comment, switching to an LTS release may address the issue.