fix: prevent Worker hang on HEAD requests to static assets#1126
Merged
vicb merged 5 commits intoopennextjs:mainfrom Feb 13, 2026
Merged
fix: prevent Worker hang on HEAD requests to static assets#1126vicb merged 5 commits intoopennextjs:mainfrom
vicb merged 5 commits intoopennextjs:mainfrom
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: ed042bb The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
commit: |
vicb
reviewed
Feb 12, 2026
Contributor
vicb
left a comment
There was a problem hiding this comment.
Thanks for the PR.
I suggested one little refactoring and this should be good to go.
Contributor
Author
Change pushed :) |
vicb
reviewed
Feb 12, 2026
Contributor
Author
|
@vicb Seems like your commit broke prettier unfortunately? |
Contributor
Oops, sorry - fixed |
Merged
conico974
added a commit
to opennextjs/adapters-api
that referenced
this pull request
Mar 21, 2026
opennextjs/opennextjs-cloudflare#1126 Fix: prevent Worker hang on HEAD requests to static assets When run_worker_first is enabled, HEAD requests to static assets hang the Worker because response.body is null (per HTTP spec) and the fallback new ReadableStream() creates a stream that never closes. Changes: - Return null body for HEAD requests instead of falling through to the hanging ReadableStream fallback - Add tests for maybeGetAssetResult covering GET, HEAD, 404, POST, and run_worker_first=false cases Changeset: .changeset/port-pr-1126.md
conico974
added a commit
to opennextjs/adapters-api
that referenced
this pull request
Mar 29, 2026
* Add SKILL.md for porting PRs and AGENTS.md for coding guidelines * update skill * Port opennextjs/opennextjs-aws#1118 as a test * Port opennextjs/opennextjs-aws#1117 * update skill * Port opennextjs/opennextjs-aws#1114 * Port PR opennextjs/opennextjs-aws#1107 * update skills * Port PR opennextjs/opennextjs-aws#1108 * Port PR opennextjs/opennextjs-aws#1104 * Port PR opennextjs/opennextjs-aws#1101 * Port PR opennextjs/opennextjs-aws#1098 * chore: port PR #1083 from source repository opennextjs/opennextjs-cloudflare#1083 Changeset: .changeset/port-pr-1083.md * chore: port PR #1105 from source repository opennextjs/opennextjs-cloudflare#1105 Changeset: .changeset/port-pr-1105.md * chore: port PR #1097 from source repository opennextjs/opennextjs-cloudflare#1097 Changeset: .changeset/port-pr-1097.md * chore: port PR #1122 from source repository opennextjs/opennextjs-cloudflare#1122 Applied bugfixes and improvements to the 'migrate' command: - Fixed extra newlines when appending to files (updated conditionalAppendFileSync signature) - Fixed error when 'public' directory is missing (creates parent directories automatically) - Fixed Next.js config file update to check if the file exists first - Updated checkRunningInsideNextjsApp to accept { appPath: string } instead of full BuildOptions Changesets: - .changeset/port-pr-1122-cloudflare.md - .changeset/port-pr-1122-aws.md * chore: update port PR skill instructions for staging and committing changes * chore: port PR #1126 from source repository opennextjs/opennextjs-cloudflare#1126 Fix: prevent Worker hang on HEAD requests to static assets When run_worker_first is enabled, HEAD requests to static assets hang the Worker because response.body is null (per HTTP spec) and the fallback new ReadableStream() creates a stream that never closes. Changes: - Return null body for HEAD requests instead of falling through to the hanging ReadableStream fallback - Add tests for maybeGetAssetResult covering GET, HEAD, 404, POST, and run_worker_first=false cases Changeset: .changeset/port-pr-1126.md * linting * chore: port PR #1127 from source repository opennextjs/opennextjs-cloudflare#1127 Changeset: .changeset/port-pr-1127.md * chore: port PR #1138 from source repository opennextjs/opennextjs-cloudflare#1138 Changeset: .changeset/port-pr-1138.md * chore: port PR #1133 from source repository opennextjs/opennextjs-cloudflare#1133 Changeset: .changeset/port-pr-1133.md Update the migrate command to attempt to create an R2 bucket for caching as part of the migration process, if that is not possible an application without caching enabled will be generated instead. * chore: port PR #1142 from source repository opennextjs/opennextjs-cloudflare#1142 Changeset: .changeset/port-pr-1142.md * chore: port PR #1147 from source repository opennextjs/opennextjs-cloudflare#1147 make dev /cdn-cgi/image behaves like prod for consistency Changeset: .changeset/port-pr-1147.md * chore: port PR #1150 from source repository opennextjs/opennextjs-cloudflare#1150 Changeset: .changeset/port-pr-1150.md * fix lockfile * fix test
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.
Summary
When
run_worker_firstis enabled, HEAD requests to static assets hang the Worker becauseresponse.bodyisnull(per HTTP spec) and the fallbacknew ReadableStream()creates a stream that never closes which results in the following errorThe Workers runtime canceled this request because it detected that your Worker's code had hung and would never generate a responsefor HEAD requests for css and other asset chunks.I tested this version and all the "worker hung" errors for HEAD requests to css chunks were gone :)
Changes
nullbody for HEAD requests instead of falling through to the hanging ReadableStream fallbackmaybeGetAssetResultcovering GET, HEAD, 404, POST, andrun_worker_first=falsecases