mirror of
https://github.com/cloudflare/vinext.git
synced 2026-05-09 08:25:34 +02:00
[PR #118] [MERGED] fix(app-router): avoid React 19 dev Flight decode crash in SSR #325
Labels
No labels
enhancement
enhancement
good first issue
help wanted
nextjs-tracking
nextjs-tracking
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/vinext#325
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/cloudflare/vinext/pull/118
Author: @liuxiaopai-ai
Created: 2/26/2026
Status: ✅ Merged
Merged: 3/5/2026
Merged by: @southpolesteve
Base:
main← Head:fix/issue-50-react19-hooks📝 Commits (6)
bc5ed34fix(app-router): avoid React 19 dev Flight decode crash in SSR (#50)423ef4bfix(app-router): avoid React 19 dev Flight decode crash in SSR (#50)de76de6test(ecosystem): harden fixture cleanup and isolate better-auth signup datae4079ccMerge branch 'main' into fix/issue-50-react19-hooks3ea9552chore: address review nits on React 19 dev Flight decode fix31b80a5Merge remote-tracking branch 'origin/main' into fix/issue-50-react19-hooks📊 Changes
5 files changed (+127 additions, -17 deletions)
View changed files
📝
packages/vinext/src/server/app-dev-server.ts(+28 -3)📝
tests/app-router.test.ts(+21 -0)📝
tests/ecosystem.test.ts(+42 -14)➕
tests/fixtures/app-basic/app/react19-dev-rsc-error/error.tsx(+18 -0)➕
tests/fixtures/app-basic/app/react19-dev-rsc-error/page.tsx(+18 -0)📄 Description
Summary\nFixes React 19 dev-mode App Router SSR regression where Flight error decode could crash with:\n-
Invalid hook call\n-Cannot read properties of null (reading 'useContext')\n\n## Changes\n- Decode Flight stream lazily from inside a React render path in dev SSR:\n - addVinextFlightRootwrapper and render it viacreateElement\n - remove the production-decoder fallback path used previously\n- Update regression test to assert crash is gone while preserving current React 19 dev behavior\n - checks client-render fallback markers\n - negative assertions for the two crash signatures above\n- Harden ecosystem fixture stability (test-only):\n - detached fixture process + process-group termination\n - randomize better-auth test emails to avoid cross-run signup collisions\n\n## Validation\n-pnpm -s run lint\n-pnpm -s run typecheck\n-pnpm -s test tests/app-router.test.ts\n-pnpm -s test tests/static-export.test.ts\n-pnpm -s test tests/ecosystem.test.ts\n-pnpm -s test(47 files, 1820 passed, 3 skipped)\nFixes #50
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.