The Wire · Showcase
REACT FIXES FLIGHT SERVER DATA LOSS UNDER BACKPRESSURE
By RepoJournal · Filed · About Meta
React's Flight Server was silently dropping streamed content when network backpressure hit between header and payload chunks, leaving data stranded in the queue.
The Flight Server emits Text and TypedArray rows as two separate chunks: a header containing metadata, then the content itself. When destination backpressure occurred between them, the flush would write the header and break before reaching content, leaving chunks orphaned [1]. This is the kind of silent data loss that surfaces weeks later in production. React also hardened Promise instrumentation error handling [2], throwing a recoverable error instead of undefined when rejection reasons are misconfigured in userspace. That makes debugging malformed Promises dramatically easier. On the React Native side, the team finished rolling out the iOS main queue coordinator and killed the feature flag [4], inlining the previously-gated paths into core execution. They're also cleaning up legacy infrastructure: removing unused SurfaceRegistry references [5] and applying Flow variance transforms across xplatjs [6]. The codegen script error logging got fixed [7], so build failures now actually surface instead of silencing themselves. CI infrastructure tightened up too [3], running on backport branches instead of tags to align with release protection rules.
Action items
- → Update React to latest patch if running Flight Server - data loss bug is critical for streaming applications facebook/react [immediate]
- → Review any custom Promise instrumentation in your app for the `reason` field correctness facebook/react [plan]
- → Upgrade to React Native next release to get iOS coordinator always-on and codegen logging fixes facebook/react-native [plan]
- → Monitor codegen builds - error logging now properly surfaces failures that were previously hidden facebook/react-native [monitor]
References
- [1] [Flight] Fix stranded row content under Node stream backpressure ↗ facebook/react
- [2] Throw special error if rejected Promises are incorrectly instrumented ↗ facebook/react
- [3] [ci] Allow CI on backport branches ↗ facebook/react
- [4] Remove enableMainQueueCoordinatorOnIOS, make coordinator always-on (#56935) facebook/react-native
- [5] Remove legacy SurfaceRegistry reference (#56972) facebook/react-native
- [6] Transform readonly in xplatjs (#56973) facebook/react-native
- [7] Fix codegen script phase error logging (#56956) facebook/react-native
FAQ
- What changed in Meta on May 28, 2026?
- React's Flight Server was silently dropping streamed content when network backpressure hit between header and payload chunks, leaving data stranded in the queue.
- What should Meta teams do about it?
- Update React to latest patch if running Flight Server - data loss bug is critical for streaming applications • Review any custom Promise instrumentation in your app for the `reason` field correctness • Upgrade to React Native next release to get iOS coordinator always-on and codegen logging fixes
- Which Meta repositories shipped on May 28, 2026?
- facebook/react, facebook/react-native