Repository navigation
Conversation
When `shopify hydrogen dev` crashed before printing its URL, the fixture rejected with "Server undefined exited with code 1" and dropped everything the CLI had written. Every startup crash in CI looked identical, so there was no way to tell what actually failed or how often each cause occurred. The fixture now keeps the last few thousand characters of the CLI's stdout/stderr until the server is ready, and puts them (ANSI codes stripped) in the rejection for both early exits and startup timeouts. Collection stops once the server is ready, so a healthy server holds no extra memory for the rest of the run. The label uses the store key and project directory instead of `id`, which is only assigned after the server reports its port and so is always undefined at this point. The project directory matters for recipes, which all share one store. Running three dev servers concurrently in one project locally reproduced the CI crash in 8 of 165 starts, and this output identified all 8 as React Router typegen races on `.react-router/types`. Co-authored-by: AI (Pi/Claude Opus 5.5) <noreply@pi.dev>
kdaviduik
added this pull request to stack #4270
October 24, 2026 03:40
Contributor
|
Oxygen deployed a preview of your
Learn more about Hydrogen's GitHub integration. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WHY are these changes introduced?
When an E2E dev server crashes before it's ready, the fixture fails with
Server undefined exited with code 1and discards everything the CLI printed. Every startup crash looks identical, so there's no way to tell what failed.These crashes are routine: each of the five most recent passing
2026-04E2E runs logged between 2 and 6 of them, and one failed the merge queue run for #4233 (markets.spec.ts).WHAT is this pull request doing?
When the dev server exits early or times out during startup, the error now includes the end of the CLI's output and names the store and project, instead of the server
id(which is only assigned once the server is ready, so it was alwaysundefinedhere).Before:
After (output trimmed):
Only the last 4,000 characters are kept, and collection stops once the server is ready.
With this output, running three dev servers at a time in one project locally reproduced the crash in 8 of 165 starts, and all 8 were React Router type generation colliding on
.react-router/types. The next PR in this stack retries those crashes.