KEMBAR78
[Flight] Track I/O Entry for the RSC Stream itself by sebmarkbage · Pull Request #34425 · facebook/react · GitHub
Skip to content

Conversation

sebmarkbage
Copy link
Collaborator

@sebmarkbage sebmarkbage commented Sep 9, 2025

One thing that can suspend is the downloading of the RSC stream itself. This tracks an I/O entry for each Promise (SomeChunk<T>) that represents the request to the RSC stream. As the value we use the Response for createFromFetch (or the ReadableStream for createFromReadableStream). The start time is when you called those.

Since we're not awaiting the whole stream, each I/O entry represents the part of the stream up until it got unblocked. However, in a production environment with TLS packets and buffering in practice the chunks received by the client isn't exactly at the boundary of each row. It's a bit longer into larger chunks. From testing, it seems like multiples of 16kb or 64kb uncompressed are common. To simulate a production environment we group into roughly 64kb chunks if they happen in rapid sequence. Note that this might be too small to give a good idea because of the throttle many boundaries might be skipped anyway so this might show too many.

The React DevTools will see each I/O entry as separate but dedupe if an outer boundary already depends on the same chunk. This deduping makes it so that small boundaries that are blocked on the same chunk, don't get treated as having unique suspenders. If you have a boundary with large content, then that content will likely be in a separate chunk which is not in the parent and then it gets marked as.

This is all just an approximation. The goal of this is just to highlight that very large boundaries will very likely suspend even if they don't suspend on any I/O on the server. In practice, these boundaries can float around a lot and it's really any Suspense boundary that might suspend but some are more likely than others which this is meant to highlight.

It also just lets you inspect how many bytes needs to be transferred before you can show a particular part of the content, to give you an idea that it's not just I/O on the server that might suspend.

If you don't use the debug channel it can be misleading since the data in development mode stream will have a lot more data in it which leads to more chunking.

Similarly to "client references" these I/O infos don't have an "env" since it's the client that has the I/O and so those are excluded from flushing in the Server performance tracks.

Note that currently the same Response can appear many times in the same Instance of SuspenseNode in DevTools when there are multiple chunks. In a follow up I'll show only the last one per Response at any given level.

Note that when a separate debugChannel is used it has its own I/O entry that's on the _debugInfo for the debug chunks in that channel. However, if everything works correctly these should never leak into the DevTools UI since they should never be propagated from a debug chunk to the values waited by the runtime. This is easy to break though.

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

react-sizebot commented Sep 9, 2025

Comparing: 1836b46...a78de1a

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.65 kB 530.65 kB = 93.49 kB 93.49 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 = 658.12 kB 658.12 kB = 115.77 kB 115.77 kB
facebook-www/ReactDOM-prod.classic.js = 682.25 kB 682.25 kB = 119.81 kB 119.80 kB
facebook-www/ReactDOM-prod.modern.js = 672.68 kB 672.68 kB = 118.11 kB 118.11 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +4.48% 125.22 kB 130.83 kB +3.43% 23.04 kB 23.83 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +4.48% 125.27 kB 130.88 kB +3.42% 23.07 kB 23.86 kB
oss-stable-semver/react-client/cjs/react-client-flight.development.js +4.44% 120.87 kB 126.24 kB +3.36% 21.96 kB 22.70 kB
oss-stable/react-client/cjs/react-client-flight.development.js +4.44% 120.89 kB 126.26 kB +3.36% 21.99 kB 22.72 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +4.42% 125.87 kB 131.42 kB +3.33% 23.36 kB 24.14 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +4.42% 125.87 kB 131.42 kB +3.33% 23.36 kB 24.14 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +4.41% 127.18 kB 132.79 kB +3.21% 23.51 kB 24.26 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +4.41% 127.23 kB 132.84 kB +3.20% 23.53 kB 24.29 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +4.33% 129.65 kB 135.26 kB +3.15% 23.97 kB 24.72 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +4.33% 129.70 kB 135.31 kB +3.14% 23.99 kB 24.75 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +4.31% 128.97 kB 134.53 kB +3.26% 23.86 kB 24.64 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +4.31% 128.97 kB 134.53 kB +3.26% 23.86 kB 24.64 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +4.31% 130.38 kB 135.99 kB +3.14% 24.15 kB 24.91 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +4.30% 129.10 kB 134.65 kB +3.24% 23.90 kB 24.67 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +4.30% 129.10 kB 134.65 kB +3.24% 23.90 kB 24.67 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +4.30% 130.43 kB 136.04 kB +3.13% 24.17 kB 24.93 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +4.27% 131.94 kB 137.57 kB +3.09% 24.14 kB 24.89 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +4.27% 131.94 kB 137.57 kB +3.09% 24.14 kB 24.89 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +4.21% 133.64 kB 139.27 kB +3.06% 24.43 kB 25.17 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +4.21% 133.64 kB 139.27 kB +3.06% 24.43 kB 25.17 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +4.17% 134.94 kB 140.57 kB +3.04% 24.66 kB 25.41 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +4.17% 134.94 kB 140.57 kB +3.04% 24.66 kB 25.41 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +4.17% 135.07 kB 140.70 kB +3.02% 24.70 kB 25.44 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +4.17% 135.07 kB 140.70 kB +3.02% 24.70 kB 25.44 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +3.96% 130.72 kB 135.89 kB +2.95% 24.10 kB 24.81 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +3.96% 130.72 kB 135.89 kB +2.95% 24.10 kB 24.81 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +3.46% 166.77 kB 172.54 kB +2.58% 29.68 kB 30.44 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +3.42% 168.73 kB 174.51 kB +2.55% 30.10 kB 30.87 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +3.41% 167.40 kB 173.11 kB +2.50% 30.07 kB 30.83 kB
oss-experimental/react-client/cjs/react-client-flight.development.js +3.40% 162.39 kB 167.92 kB +2.56% 28.64 kB 29.37 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +3.37% 171.21 kB 176.98 kB +2.49% 30.57 kB 31.33 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +3.36% 171.93 kB 177.70 kB +2.44% 30.75 kB 31.50 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +3.35% 170.50 kB 176.21 kB +2.50% 30.55 kB 31.32 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +3.35% 170.63 kB 176.34 kB +2.51% 30.58 kB 31.35 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +3.34% 173.43 kB 179.22 kB +2.45% 30.77 kB 31.53 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +3.30% 175.13 kB 180.92 kB +2.43% 31.05 kB 31.80 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +3.28% 176.44 kB 182.22 kB +2.40% 31.29 kB 32.04 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +3.28% 176.57 kB 182.35 kB +2.39% 31.32 kB 32.06 kB
oss-stable-semver/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +3.24% 177.66 kB 183.41 kB +3.38% 40.64 kB 42.01 kB
oss-stable/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +3.24% 177.68 kB 183.43 kB +3.38% 40.67 kB 42.04 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +3.09% 172.21 kB 177.54 kB +2.49% 30.70 kB 31.46 kB
oss-experimental/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +2.79% 212.56 kB 218.49 kB +2.95% 47.22 kB 48.62 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-parcel/cjs/react-server-dom-parcel-client.browser.development.js +4.48% 125.22 kB 130.83 kB +3.43% 23.04 kB 23.83 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +4.48% 125.27 kB 130.88 kB +3.42% 23.07 kB 23.86 kB
oss-stable-semver/react-client/cjs/react-client-flight.development.js +4.44% 120.87 kB 126.24 kB +3.36% 21.96 kB 22.70 kB
oss-stable/react-client/cjs/react-client-flight.development.js +4.44% 120.89 kB 126.26 kB +3.36% 21.99 kB 22.72 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +4.42% 125.87 kB 131.42 kB +3.33% 23.36 kB 24.14 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +4.42% 125.87 kB 131.42 kB +3.33% 23.36 kB 24.14 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +4.41% 127.18 kB 132.79 kB +3.21% 23.51 kB 24.26 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +4.41% 127.23 kB 132.84 kB +3.20% 23.53 kB 24.29 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +4.33% 129.65 kB 135.26 kB +3.15% 23.97 kB 24.72 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +4.33% 129.70 kB 135.31 kB +3.14% 23.99 kB 24.75 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +4.31% 128.97 kB 134.53 kB +3.26% 23.86 kB 24.64 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +4.31% 128.97 kB 134.53 kB +3.26% 23.86 kB 24.64 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +4.31% 130.38 kB 135.99 kB +3.14% 24.15 kB 24.91 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +4.30% 129.10 kB 134.65 kB +3.24% 23.90 kB 24.67 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +4.30% 129.10 kB 134.65 kB +3.24% 23.90 kB 24.67 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +4.30% 130.43 kB 136.04 kB +3.13% 24.17 kB 24.93 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +4.27% 131.94 kB 137.57 kB +3.09% 24.14 kB 24.89 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +4.27% 131.94 kB 137.57 kB +3.09% 24.14 kB 24.89 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +4.21% 133.64 kB 139.27 kB +3.06% 24.43 kB 25.17 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +4.21% 133.64 kB 139.27 kB +3.06% 24.43 kB 25.17 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +4.17% 134.94 kB 140.57 kB +3.04% 24.66 kB 25.41 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +4.17% 134.94 kB 140.57 kB +3.04% 24.66 kB 25.41 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +4.17% 135.07 kB 140.70 kB +3.02% 24.70 kB 25.44 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +4.17% 135.07 kB 140.70 kB +3.02% 24.70 kB 25.44 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +3.96% 130.72 kB 135.89 kB +2.95% 24.10 kB 24.81 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +3.96% 130.72 kB 135.89 kB +2.95% 24.10 kB 24.81 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +3.46% 166.77 kB 172.54 kB +2.58% 29.68 kB 30.44 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +3.42% 168.73 kB 174.51 kB +2.55% 30.10 kB 30.87 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +3.41% 167.40 kB 173.11 kB +2.50% 30.07 kB 30.83 kB
oss-experimental/react-client/cjs/react-client-flight.development.js +3.40% 162.39 kB 167.92 kB +2.56% 28.64 kB 29.37 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +3.37% 171.21 kB 176.98 kB +2.49% 30.57 kB 31.33 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +3.36% 171.93 kB 177.70 kB +2.44% 30.75 kB 31.50 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +3.35% 170.50 kB 176.21 kB +2.50% 30.55 kB 31.32 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +3.35% 170.63 kB 176.34 kB +2.51% 30.58 kB 31.35 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +3.34% 173.43 kB 179.22 kB +2.45% 30.77 kB 31.53 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +3.30% 175.13 kB 180.92 kB +2.43% 31.05 kB 31.80 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +3.28% 176.44 kB 182.22 kB +2.40% 31.29 kB 32.04 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +3.28% 176.57 kB 182.35 kB +2.39% 31.32 kB 32.06 kB
oss-stable-semver/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +3.24% 177.66 kB 183.41 kB +3.38% 40.64 kB 42.01 kB
oss-stable/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +3.24% 177.68 kB 183.43 kB +3.38% 40.67 kB 42.04 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +3.09% 172.21 kB 177.54 kB +2.49% 30.70 kB 31.46 kB
oss-experimental/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +2.79% 212.56 kB 218.49 kB +2.95% 47.22 kB 48.62 kB
oss-experimental/react-noop-renderer/cjs/react-noop-renderer-flight-client.production.js +0.77% 2.07 kB 2.09 kB +0.26% 0.78 kB 0.78 kB
oss-stable-semver/react-noop-renderer/cjs/react-noop-renderer-flight-client.production.js +0.77% 2.07 kB 2.09 kB +0.26% 0.78 kB 0.78 kB
oss-stable/react-noop-renderer/cjs/react-noop-renderer-flight-client.production.js +0.77% 2.07 kB 2.09 kB +0.26% 0.78 kB 0.78 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.production.js +0.71% 66.10 kB 66.58 kB +0.48% 13.03 kB 13.09 kB
oss-experimental/react-noop-renderer/cjs/react-noop-renderer-flight-client.development.js +0.64% 2.49 kB 2.51 kB +0.23% 0.86 kB 0.86 kB
oss-stable-semver/react-noop-renderer/cjs/react-noop-renderer-flight-client.development.js +0.64% 2.49 kB 2.51 kB +0.23% 0.86 kB 0.86 kB
oss-stable/react-noop-renderer/cjs/react-noop-renderer-flight-client.development.js +0.64% 2.49 kB 2.51 kB +0.23% 0.86 kB 0.86 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +0.63% 68.27 kB 68.70 kB +0.34% 13.47 kB 13.52 kB
oss-experimental/react-client/cjs/react-client-flight.production.js +0.63% 64.37 kB 64.78 kB +0.39% 11.80 kB 11.85 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js +0.62% 69.32 kB 69.76 kB +0.34% 13.69 kB 13.74 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +0.62% 69.44 kB 69.87 kB +0.34% 13.71 kB 13.76 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.production.js +0.60% 65.55 kB 65.94 kB +0.32% 12.93 kB 12.97 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.production.js +0.60% 65.55 kB 65.94 kB +0.32% 12.93 kB 12.97 kB
oss-experimental/react-server-dom-esm/esm/react-server-dom-esm-client.browser.production.js +0.59% 90.55 kB 91.08 kB +0.31% 18.74 kB 18.80 kB
oss-stable-semver/react-server-dom-esm/esm/react-server-dom-esm-client.browser.production.js +0.54% 89.81 kB 90.30 kB +0.30% 18.63 kB 18.68 kB
oss-stable/react-server-dom-esm/esm/react-server-dom-esm-client.browser.production.js +0.54% 89.81 kB 90.30 kB +0.30% 18.63 kB 18.68 kB
oss-experimental/react-markup/cjs/react-markup.react-server.development.js +0.54% 659.04 kB 662.61 kB +0.57% 116.34 kB 117.01 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +0.52% 67.71 kB 68.06 kB +0.25% 13.36 kB 13.39 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +0.52% 67.71 kB 68.06 kB +0.25% 13.36 kB 13.39 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js +0.51% 68.77 kB 69.12 kB +0.26% 13.57 kB 13.61 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js +0.51% 68.77 kB 69.12 kB +0.26% 13.57 kB 13.61 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +0.51% 68.89 kB 69.24 kB +0.25% 13.60 kB 13.63 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +0.51% 68.89 kB 69.24 kB +0.25% 13.60 kB 13.63 kB
oss-stable-semver/react-client/cjs/react-client-flight.production.js +0.51% 63.86 kB 64.18 kB +0.29% 11.69 kB 11.72 kB
oss-stable/react-client/cjs/react-client-flight.production.js +0.51% 63.88 kB 64.21 kB +0.27% 11.72 kB 11.75 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.production.js +0.43% 61.91 kB 62.18 kB +0.28% 12.44 kB 12.47 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.production.js +0.40% 56.43 kB 56.65 kB +0.23% 11.24 kB 11.27 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.production.js +0.40% 56.72 kB 56.95 kB +0.24% 11.32 kB 11.34 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.production.js +0.39% 61.34 kB 61.58 kB +0.22% 12.33 kB 12.36 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.production.js +0.39% 61.34 kB 61.58 kB +0.22% 12.33 kB 12.36 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js +0.39% 58.60 kB 58.82 kB +0.23% 11.71 kB 11.74 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js +0.38% 59.06 kB 59.29 kB +0.23% 11.80 kB 11.83 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.production.js +0.36% 55.85 kB 56.05 kB +0.14% 11.13 kB 11.15 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.production.js +0.36% 55.85 kB 56.05 kB +0.14% 11.13 kB 11.15 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.production.js +0.36% 56.14 kB 56.34 kB +0.16% 11.20 kB 11.22 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.production.js +0.36% 56.14 kB 56.34 kB +0.16% 11.20 kB 11.22 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.production.js +0.35% 64.93 kB 65.16 kB +0.20% 13.04 kB 13.07 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js +0.35% 65.05 kB 65.28 kB +0.21% 13.07 kB 13.09 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js +0.34% 58.02 kB 58.22 kB +0.16% 11.60 kB 11.62 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js +0.34% 58.02 kB 58.22 kB +0.16% 11.60 kB 11.62 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js +0.34% 58.49 kB 58.69 kB +0.15% 11.69 kB 11.71 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js +0.34% 58.49 kB 58.69 kB +0.15% 11.69 kB 11.71 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.production.js +0.31% 64.36 kB 64.56 kB +0.12% 12.93 kB 12.95 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.production.js +0.31% 64.36 kB 64.56 kB +0.12% 12.93 kB 12.95 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js +0.31% 64.47 kB 64.67 kB +0.14% 12.96 kB 12.97 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js +0.31% 64.47 kB 64.67 kB +0.14% 12.96 kB 12.97 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.node.production.js = 64.95 kB 64.78 kB = 12.72 kB 12.72 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.node.production.js = 64.95 kB 64.78 kB = 12.72 kB 12.72 kB

Generated by 🚫 dangerJS against a78de1a

Needs a value that represents the stream itself for introspection. Could
be anything.
The stream is needed just to represent a value that means something to the
user about what kind of stream this is.
…able

This lets us show things like the url of the requested RSC stream.
Once we've filled up a realistic prod buffer, we create a new I/O info
representing the next chunk in the stream.
Specifically the owner and stack slot of an element reach into the debug
channel and we don't want to transfer its debug info like the I/O entry
for the debug channel chunk.
Semantically this means that the I/O we're awaiting is all the chunks
leading up to the one we're waiting for.
The fixture is broken. For some reason the set up can't handle the chunking
of larger content.
This leads to hydration errors instead because of how the prerender is set up.
@sebmarkbage sebmarkbage merged commit 969a979 into facebook:main Sep 9, 2025
178 of 180 checks passed
sebmarkbage added a commit that referenced this pull request Sep 10, 2025
)

Stacked on #34425.

RSC stream info is split into one I/O entry per chunk. This means that
when a single instance or boundary depends on multiple chunks, it'll
show the same stream multiple times. This makes it so just the last one
is shown.

This is a special case for the name "RSC stream" but ideally we'd more
explicitly model the concept of awaiting only part of a stream.

<img width="667" height="427" alt="Screenshot 2025-09-09 at 2 09 43 PM"
src="https://github.com/user-attachments/assets/890f6f61-4657-4ca9-82fd-df55a696bacc"
/>

Another remaining issue is that it's possible for an intermediate chunk
to be depended on by just a child boundary. In that case that can be
considered a "unique suspender" even though the parent depends on a
later one. Ideally it would dedupe on everything below. Could also model
it as every Promise depends on its chunk and every previous chunk.
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