web_pixel_extension deploy fails: "Only one script can be uploaded at a time" (appVersionCreate) — regression, blocking release

I have reproduced the issue on the latest CLI version.

Yes, I am on the latest version

I have searched existing posts and this report is not a duplicate.

Yes, this isn’t a duplicate

In which of these areas are you experiencing a problem?

App

Expected behavior

shopify app deploy should create a new app version that includes the web_pixel_extension.

Actual behavior

Deploy fails at the appVersionCreate mutation with “Version couldn’t be created. / Only one script can be uploaded at a time” — even for a single web_pixel_extension, alone, on a brand-new app. A theme app extension deploys fine on the same app.

This is a regression: the identical source deployed successfully 8 times through 2026-05-15, and now fails on both our existing app and a freshly created one. Reverting our working tree to that exact known-good source and redeploying today still fails — so nothing changed on our end.

Reproduction steps

  1. Have an app that contains a web_pixel_extension.
  2. Run shopify app deploy.
  3. It fails at appVersionCreate: “Only one script can be uploaded at a time”.

Isolation on a brand-new app (first deploys):

extensions/ contains Result
web_pixel_extension only :cross_mark: Only one script can be uploaded at a time
theme app extension only :white_check_mark: deploys fine
both :cross_mark: same error

The web pixel fails ALONE — so it’s not a theme+pixel combo or app-specific state. In a run where the theme was already registered, adding only the web pixel (cmd_deploy_confirm_new_registrations: 1) still fails.

Ruled out: our code (known-good source fails), duplicate extension (dashboard shows 1 pixel + 1 theme), CLI version (fails on 3.94.3 and 4.5.2), the combo (pixel fails alone), stuck app state (brand-new app fails identically).

Verbose output

mediascale-pixel │ Bundling UI extension mediascale-pixel...
mediascale-pixel │ mediascale-pixel successfully built in 93ms
mediascale-embed │ Bundling theme extension mediascale-embed...
Running validation ...
Releasing an app version ...

# appVersionCreate mutation variables (sourceUrl trimmed):
{ "appId": "gid://shopify/App/399310225409",
  "version": { "sourceUrl": ".../partners-extensions-scripts-bucket/.../source.br" } }

# Response:
╭─ error ─╮
│ Version couldn't be created.
│ Only one script can be uploaded at a time
╰─╯

# From the analytics event:
"cli_version": "4.5.2"
"app_extensions_breakdown": {"web_pixel_extension":1,"theme":1}
"cmd_deploy_confirm_new_registrations": 1
"cmd_all_last_graphql_request_id": "98c288f9-0eb6-42bd-8a46-9704ed6ce15e-1784353981"
"request_ids": [
  "670671d0-e1ea-4991-a791-f632270255bd-1784353980",   # CreateAssetURL
  "98c288f9-0eb6-42bd-8a46-9704ed6ce15e-1784353981"    # appVersionCreate (failing)
]
"error_message": "Version couldn't be created."
"success": false

# For staff: the CLI logs only the appVersionCreate response headers, not the body,
# so userErrors (code/field) never surface. Please check the server-side response for
# request id 98c288f9-0eb6-42bd-8a46-9704ed6ce15e-1784353981 (app 399310225409).

Operating system

macOS (Apple Silicon / arm64)

CLI version

4.5.2

Shell

zsh

Nodejs version

22.18.0

What language and version are you using in your application?

JavaScript

I hit this exact error signature (Version couldn't be created. / Only one script can be uploaded at a time) on a web pixel extension + function extension combo. Initially assumed it was this same platform-side regression, but it turned out not to be - worth checking before you rule it out.

Root cause in my case: extensions/<web-pixel-name>/dist/ (gitignored local build cache) had bundle output under two different basenames - leftovers from an earlier extension rename that never got cleaned up (e.g. old-name.js/.metafile.json sitting alongside new-name.js/.metafile.json in the same dist/ folder).

shopify app deploy chokes on that with the exact same “only one script” message, and it reads identically to the server-side regression from the outside.

Fix:

rm -rf extensions/<web-pixel-extension>/dist
shopify app deploy --allow-updates

No other change needed - extension count, UIDs, and everything else stayed the same, and it deployed clean on the first retry.

Worth noting: this class of bug survives a source revert (since dist/ isn’t part of source control), so “reverted to known-good code, still fails” doesn’t rule it out - you’d need to specifically clear the build cache, not just the source. It might not explain the “fails on a brand-new app” case if that app’s dist/ was never touched, but if you’ve ever renamed a pixel/function extension anywhere in this app’s history, it’s worth a ls extensions/*/dist/ check before concluding it’s unfixable upstream. There’s at least one other independent report on Shopify/cli#6069 with the same stale-dist cause.

Hope this helps!

(Also: don’t try fixing this by editing the extension’s uid in shopify.extension.toml - that’s a live-extension identity field, and changing it risks Shopify treating it as a new extension rather than an update.)

Hey @Dhruv_Patel and @Aravind_Baskaran - thanks for the detailed reports.

@Aravind_Baskaran, thanks for sharing the stale dist output finding as well. We’re considering that as one possible contributor while we look into this deployment failure and verify the behaviour behind the appVersionCreate error.

I’ll share an update here when I have more to confirm.

Hey @Dhruv_Patel and @Aravind_Baskaran - following up on this.

We’ve just shipped a change and the Only one script can be uploaded at a time error should now identify the conflicting uploaded files.

If you’re still seeing issues, please retry shopify app deploy and check the updated error. If the named file is stale generated output, remove it and redeploy. We’re still reviewing a broader fix, but this should allow you to identify the issue.

If the error doesn’t identify the file for any reason, share the new output and request ID here and I can take another look.

Hope this helps!