Skip to content

Fix intermittent deploy failures with shared UI extension folders - #8833

Merged
isaacroldan merged 1 commit into
Shopify:mainfrom
efegokdemir:codex/app-deploy-shared-dist-race
Oct 30, 2026
Merged

isaacroldan merged 1 commit into
Shopify:mainfrom
efegokdemir:codex/app-deploy-shared-dist-race

Conversation

@efegokdemir

@efegokdemir efegokdemir commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

WHY are these changes introduced?

Fixes #8823.

app deploy builds UI extensions concurrently. When two UI extensions share a folder, one build can move its source map back into the shared local dist/ while another build copies that directory. The second copy may have already enumerated the map and then fail with ENOENT when it tries to stat the temporarily moved file.

WHAT is this pull request doing?

The UI bundle step now copies generated files individually and excludes *.js.map. Source maps are already kept in the local output directory and excluded from deploy archives, so this preserves the shipped bundle contents while removing the concurrent read/write race. The regression test confirms that regular and nested assets still copy, source maps stay local, and maps are omitted from the bundle.

The new regression test failed before the fix because the source map was copied into the bundle. It passes after the fix. The full @shopify/app suite passed (283 test files, 3,561 passed, 3 skipped); targeted ESLint, Prettier, type-check, and build also passed.

How to manually test your changes?

Create an app with a single extension folder containing two UI extensions that generate source maps, then run shopify app deploy. Repeat the deploy and confirm it no longer intermittently fails with ENOENT while copying a sibling .js.map file.

Post-release steps

None.

Checklist

  • I have considered possible cross-platform impacts (Mac, Linux, Windows)
  • I have considered possible documentation changes
  • I have considered analytics changes to measure impact
  • The change is user-facing; this bug fix uses a patch changeset for @shopify/app.

@efegokdemir
efegokdemir requested a review from a team as a code owner October 8, 2026 10:26
@isaacroldan
isaacroldan enabled auto-merge October 30, 2026 09:51
@isaacroldan

Copy link
Copy Markdown
Contributor

Thanks for the fix @efegokdemir

@isaacroldan
isaacroldan added this pull request to the merge queue Oct 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 30, 2026
@isaacroldan
isaacroldan added this pull request to the merge queue Oct 30, 2026
Merged via the queue into Shopify:main with commit 67c6cb5 Oct 30, 2026
30 of 31 checks passed
jplhomer pushed a commit that referenced this pull request Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: app deploy fails intermittently with ENOENT on <handle>.js.map when two UI extensions share a folder

2 participants