Skip to content

Conversation

@unstubbable
Copy link
Collaborator

When a debug channel is used between the Flight server and a browser Flight client, we want to allow the same RSC stream to be used for server-side rendering. To support this, the Edge and Node Flight clients also need to accept a debugChannel option. Without it, debug information would be missing (e.g. for SSR error stacks), and in some cases this could result in Connection closed errors.

This PR adds support for the debugChannel option in the Edge and Node clients for ESM, Parcel, Turbopack, and Webpack. Unlike the browser clients, these clients only support a one-way channel, since the Flight server’s return protocol is not designed for multiple clients.

The implementation follows the approach used in the browser clients, but excludes the writable parts.

@meta-cla meta-cla bot added the CLA Signed label Aug 20, 2025
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Aug 20, 2025
@react-sizebot
Copy link

react-sizebot commented Aug 20, 2025

Comparing: 3e20dc8...d64fe0f

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.68 kB 6.68 kB = 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 530.18 kB 530.18 kB = 93.39 kB 93.39 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 655.81 kB 655.81 kB = 115.30 kB 115.30 kB
facebook-www/ReactDOM-prod.classic.js = 675.58 kB 675.58 kB = 118.54 kB 118.54 kB
facebook-www/ReactDOM-prod.modern.js = 666.00 kB 666.00 kB = 116.86 kB 116.86 kB
oss-experimental/react-debug-tools/cjs/react-debug-tools.development.js = 33.29 kB 32.49 kB = 5.92 kB 5.85 kB
oss-stable-semver/react-debug-tools/cjs/react-debug-tools.development.js = 33.29 kB 32.49 kB = 5.92 kB 5.85 kB
oss-stable/react-debug-tools/cjs/react-debug-tools.development.js = 33.29 kB 32.49 kB = 5.92 kB 5.85 kB
oss-experimental/react-debug-tools/cjs/react-debug-tools.production.js = 29.70 kB 28.95 kB = 5.80 kB 5.73 kB
oss-stable-semver/react-debug-tools/cjs/react-debug-tools.production.js = 29.70 kB 28.95 kB = 5.80 kB 5.73 kB
oss-stable/react-debug-tools/cjs/react-debug-tools.production.js = 29.70 kB 28.95 kB = 5.80 kB 5.73 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.78% 130.03 kB 131.04 kB +0.38% 23.88 kB 23.97 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.78% 130.03 kB 131.04 kB +0.38% 23.88 kB 23.97 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.77% 131.38 kB 132.39 kB +0.38% 24.13 kB 24.22 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.77% 131.38 kB 132.39 kB +0.38% 24.13 kB 24.22 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.77% 131.50 kB 132.52 kB +0.38% 24.16 kB 24.25 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.77% 131.50 kB 132.52 kB +0.38% 24.16 kB 24.25 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.72% 128.37 kB 129.30 kB +0.38% 23.59 kB 23.67 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.72% 128.37 kB 129.30 kB +0.38% 23.59 kB 23.67 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.59% 171.91 kB 172.92 kB +0.22% 30.58 kB 30.65 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.59% 173.25 kB 174.27 kB +0.18% 30.83 kB 30.89 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.58% 173.38 kB 174.40 kB +0.19% 30.87 kB 30.92 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.54% 170.25 kB 171.18 kB +0.24% 30.31 kB 30.38 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.48% 123.01 kB 123.60 kB +0.34% 22.85 kB 22.92 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.48% 123.01 kB 123.60 kB +0.34% 22.85 kB 22.92 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.47% 126.15 kB 126.74 kB +0.33% 23.36 kB 23.43 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.47% 126.15 kB 126.74 kB +0.33% 23.36 kB 23.43 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.47% 126.28 kB 126.87 kB +0.34% 23.39 kB 23.47 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.47% 126.28 kB 126.87 kB +0.34% 23.39 kB 23.47 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.36% 164.92 kB 165.51 kB +0.25% 29.61 kB 29.69 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.35% 168.07 kB 168.66 kB +0.25% 30.11 kB 30.19 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.35% 168.20 kB 168.79 kB +0.26% 30.14 kB 30.22 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +0.32% 67.52 kB 67.73 kB +0.23% 13.32 kB 13.35 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +0.32% 67.52 kB 67.73 kB +0.23% 13.32 kB 13.35 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +0.31% 68.08 kB 68.29 kB +0.31% 13.42 kB 13.47 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js +0.31% 68.58 kB 68.79 kB +0.22% 13.54 kB 13.57 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js +0.31% 68.58 kB 68.79 kB +0.22% 13.54 kB 13.57 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +0.31% 68.70 kB 68.91 kB +0.22% 13.56 kB 13.59 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +0.31% 68.70 kB 68.91 kB +0.22% 13.56 kB 13.59 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js +0.31% 69.13 kB 69.35 kB +0.29% 13.64 kB 13.68 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +0.31% 69.25 kB 69.47 kB +0.28% 13.67 kB 13.71 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.production.js +0.26% 65.43 kB 65.60 kB +0.15% 12.91 kB 12.92 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.production.js +0.26% 65.43 kB 65.60 kB +0.15% 12.91 kB 12.92 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.production.js +0.25% 65.99 kB 66.16 kB +0.13% 13.02 kB 13.03 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.node.production.js +0.23% 64.77 kB 64.91 kB +0.32% 12.68 kB 12.72 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.node.production.js +0.23% 64.77 kB 64.91 kB +0.32% 12.68 kB 12.72 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.node.production.js +0.23% 65.32 kB 65.47 kB +0.32% 12.79 kB 12.83 kB
oss-experimental/react-debug-tools/cjs/react-debug-tools.development.js = 33.29 kB 32.49 kB = 5.92 kB 5.85 kB
oss-stable-semver/react-debug-tools/cjs/react-debug-tools.development.js = 33.29 kB 32.49 kB = 5.92 kB 5.85 kB
oss-stable/react-debug-tools/cjs/react-debug-tools.development.js = 33.29 kB 32.49 kB = 5.92 kB 5.85 kB
oss-experimental/react-debug-tools/cjs/react-debug-tools.production.js = 29.70 kB 28.95 kB = 5.80 kB 5.73 kB
oss-stable-semver/react-debug-tools/cjs/react-debug-tools.production.js = 29.70 kB 28.95 kB = 5.80 kB 5.73 kB
oss-stable/react-debug-tools/cjs/react-debug-tools.production.js = 29.70 kB 28.95 kB = 5.80 kB 5.73 kB

Generated by 🚫 dangerJS against d64fe0f

@unstubbable unstubbable marked this pull request as ready for review August 20, 2025 11:49
@unstubbable unstubbable requested review from eps1lon and gnoff August 20, 2025 11:49
@unstubbable unstubbable merged commit 0bc71e6 into facebook:main Aug 20, 2025
244 checks passed
@unstubbable unstubbable deleted the edge-node-debug-channel branch August 20, 2025 14:52
unstubbable pushed a commit to vercel/next.js that referenced this pull request Aug 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed React Core Team Opened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants