Skip to content

Conversation

unstubbable
Copy link
Collaborator

When a static JSX child in a client component is blocked, e.g. on debug info, we must ensure that the key validation that's done by the JSX runtime also handles lazy types. Otherwise, a false-positive missing key warning is printed.

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

react-sizebot commented Aug 30, 2025

Comparing: aad7c66...60ae1c4

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.31 kB 530.31 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 = 657.78 kB 657.78 kB = 115.66 kB 115.66 kB
facebook-www/ReactDOM-prod.classic.js = 677.76 kB 677.76 kB = 118.94 kB 118.94 kB
facebook-www/ReactDOM-prod.modern.js = 668.19 kB 668.19 kB = 117.26 kB 117.26 kB
oss-stable-semver/react/cjs/react-jsx-dev-runtime.development.js +4.02% 11.59 kB 12.06 kB +2.76% 3.26 kB 3.35 kB
oss-stable/react/cjs/react-jsx-dev-runtime.development.js +4.02% 11.59 kB 12.06 kB +2.76% 3.26 kB 3.35 kB
oss-experimental/react/cjs/react-jsx-dev-runtime.development.js +3.97% 11.74 kB 12.20 kB +2.72% 3.30 kB 3.39 kB
facebook-react-native/react/cjs/JSXDEVRuntime-dev.js +3.95% 11.81 kB 12.28 kB +2.69% 3.31 kB 3.40 kB
oss-stable-semver/react/cjs/react-jsx-runtime.development.js +3.89% 11.99 kB 12.45 kB +2.69% 3.27 kB 3.36 kB
oss-stable/react/cjs/react-jsx-runtime.development.js +3.89% 11.99 kB 12.45 kB +2.69% 3.27 kB 3.36 kB
oss-experimental/react/cjs/react-jsx-runtime.development.js +3.84% 12.13 kB 12.60 kB +2.69% 3.31 kB 3.40 kB
facebook-react-native/react/cjs/JSXRuntime-dev.js +3.82% 12.21 kB 12.68 kB +2.62% 3.32 kB 3.40 kB
facebook-www/JSXDEVRuntime-dev.classic.js +3.78% 12.31 kB 12.78 kB +2.63% 3.42 kB 3.51 kB
facebook-www/JSXDEVRuntime-dev.modern.js +3.78% 12.31 kB 12.78 kB +2.63% 3.42 kB 3.51 kB
oss-stable-semver/react/cjs/react-jsx-runtime.react-server.development.js +3.66% 12.74 kB 13.21 kB +2.65% 3.40 kB 3.49 kB
oss-stable/react/cjs/react-jsx-runtime.react-server.development.js +3.66% 12.74 kB 13.21 kB +2.65% 3.40 kB 3.49 kB
oss-stable-semver/react/cjs/react-jsx-dev-runtime.react-server.development.js +3.66% 12.75 kB 13.21 kB +2.62% 3.40 kB 3.49 kB
oss-stable/react/cjs/react-jsx-dev-runtime.react-server.development.js +3.66% 12.75 kB 13.21 kB +2.62% 3.40 kB 3.49 kB
oss-experimental/react/cjs/react-jsx-runtime.react-server.development.js +3.61% 12.89 kB 13.36 kB +2.68% 3.44 kB 3.53 kB
oss-experimental/react/cjs/react-jsx-dev-runtime.react-server.development.js +3.61% 12.90 kB 13.36 kB +2.67% 3.44 kB 3.53 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/cjs/react-jsx-dev-runtime.development.js +4.02% 11.59 kB 12.06 kB +2.76% 3.26 kB 3.35 kB
oss-stable/react/cjs/react-jsx-dev-runtime.development.js +4.02% 11.59 kB 12.06 kB +2.76% 3.26 kB 3.35 kB
oss-experimental/react/cjs/react-jsx-dev-runtime.development.js +3.97% 11.74 kB 12.20 kB +2.72% 3.30 kB 3.39 kB
facebook-react-native/react/cjs/JSXDEVRuntime-dev.js +3.95% 11.81 kB 12.28 kB +2.69% 3.31 kB 3.40 kB
oss-stable-semver/react/cjs/react-jsx-runtime.development.js +3.89% 11.99 kB 12.45 kB +2.69% 3.27 kB 3.36 kB
oss-stable/react/cjs/react-jsx-runtime.development.js +3.89% 11.99 kB 12.45 kB +2.69% 3.27 kB 3.36 kB
oss-experimental/react/cjs/react-jsx-runtime.development.js +3.84% 12.13 kB 12.60 kB +2.69% 3.31 kB 3.40 kB
facebook-react-native/react/cjs/JSXRuntime-dev.js +3.82% 12.21 kB 12.68 kB +2.62% 3.32 kB 3.40 kB
facebook-www/JSXDEVRuntime-dev.classic.js +3.78% 12.31 kB 12.78 kB +2.63% 3.42 kB 3.51 kB
facebook-www/JSXDEVRuntime-dev.modern.js +3.78% 12.31 kB 12.78 kB +2.63% 3.42 kB 3.51 kB
oss-stable-semver/react/cjs/react-jsx-runtime.react-server.development.js +3.66% 12.74 kB 13.21 kB +2.65% 3.40 kB 3.49 kB
oss-stable/react/cjs/react-jsx-runtime.react-server.development.js +3.66% 12.74 kB 13.21 kB +2.65% 3.40 kB 3.49 kB
oss-stable-semver/react/cjs/react-jsx-dev-runtime.react-server.development.js +3.66% 12.75 kB 13.21 kB +2.62% 3.40 kB 3.49 kB
oss-stable/react/cjs/react-jsx-dev-runtime.react-server.development.js +3.66% 12.75 kB 13.21 kB +2.62% 3.40 kB 3.49 kB
oss-experimental/react/cjs/react-jsx-runtime.react-server.development.js +3.61% 12.89 kB 13.36 kB +2.68% 3.44 kB 3.53 kB
oss-experimental/react/cjs/react-jsx-dev-runtime.react-server.development.js +3.61% 12.90 kB 13.36 kB +2.67% 3.44 kB 3.53 kB
oss-stable-semver/react/cjs/react.react-server.development.js +1.16% 30.04 kB 30.39 kB +0.56% 7.20 kB 7.24 kB
oss-stable/react/cjs/react.react-server.development.js +1.16% 30.07 kB 30.41 kB +0.54% 7.23 kB 7.27 kB
oss-experimental/react/cjs/react.react-server.development.js +0.92% 37.85 kB 38.20 kB +0.47% 8.94 kB 8.98 kB
oss-stable-semver/react/cjs/react.development.js +0.74% 46.72 kB 47.07 kB +0.41% 10.61 kB 10.66 kB
oss-stable/react/cjs/react.development.js +0.74% 46.74 kB 47.09 kB +0.41% 10.64 kB 10.68 kB
facebook-react-native/react/cjs/React-dev.js +0.74% 51.40 kB 51.78 kB +0.51% 11.48 kB 11.54 kB
facebook-www/React-dev.modern.js +0.72% 52.35 kB 52.73 kB +0.94% 11.71 kB 11.82 kB
facebook-www/React-dev.classic.js +0.72% 52.36 kB 52.73 kB +0.94% 11.71 kB 11.82 kB
oss-experimental/react/cjs/react.development.js +0.69% 50.11 kB 50.46 kB +0.36% 11.31 kB 11.35 kB
oss-stable-semver/react-client/cjs/react-client-flight.development.js +0.32% 120.55 kB 120.94 kB +0.38% 21.86 kB 21.94 kB
oss-stable/react-client/cjs/react-client-flight.development.js +0.32% 120.58 kB 120.97 kB +0.37% 21.89 kB 21.97 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.31% 124.86 kB 125.25 kB +0.32% 22.95 kB 23.02 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.31% 124.91 kB 125.30 kB +0.32% 22.97 kB 23.05 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.31% 125.51 kB 125.90 kB +0.34% 23.27 kB 23.35 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.31% 125.51 kB 125.90 kB +0.34% 23.27 kB 23.35 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.31% 126.86 kB 127.25 kB +0.33% 23.43 kB 23.51 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.31% 126.91 kB 127.30 kB +0.34% 23.45 kB 23.53 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.30% 128.66 kB 129.05 kB +0.33% 23.77 kB 23.85 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.30% 128.66 kB 129.05 kB +0.33% 23.77 kB 23.85 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.30% 128.78 kB 129.18 kB +0.34% 23.80 kB 23.88 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.30% 128.78 kB 129.18 kB +0.34% 23.80 kB 23.88 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.30% 129.33 kB 129.72 kB +0.35% 23.89 kB 23.97 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.30% 129.38 kB 129.77 kB +0.35% 23.91 kB 23.99 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.30% 130.06 kB 130.45 kB +0.34% 24.07 kB 24.15 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.30% 130.11 kB 130.50 kB +0.33% 24.09 kB 24.17 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.30% 130.40 kB 130.79 kB +0.35% 24.01 kB 24.09 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.30% 130.40 kB 130.79 kB +0.35% 24.01 kB 24.09 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.30% 131.58 kB 131.97 kB +0.30% 24.04 kB 24.11 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.30% 131.58 kB 131.97 kB +0.30% 24.04 kB 24.11 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.29% 133.28 kB 133.68 kB +0.31% 24.32 kB 24.40 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.29% 133.28 kB 133.68 kB +0.31% 24.32 kB 24.40 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.29% 134.63 kB 135.02 kB +0.35% 24.57 kB 24.65 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.29% 134.63 kB 135.02 kB +0.35% 24.57 kB 24.65 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.29% 134.76 kB 135.15 kB +0.34% 24.60 kB 24.69 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.29% 134.76 kB 135.15 kB +0.34% 24.60 kB 24.69 kB
oss-experimental/react-client/cjs/react-client-flight.development.js +0.24% 162.08 kB 162.47 kB +0.31% 28.55 kB 28.64 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.23% 166.42 kB 166.81 kB +0.25% 29.58 kB 29.65 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.23% 167.04 kB 167.43 kB +0.24% 29.98 kB 30.06 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.23% 168.42 kB 168.81 kB +0.27% 30.02 kB 30.10 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.23% 170.19 kB 170.58 kB +0.23% 30.47 kB 30.54 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.23% 170.31 kB 170.71 kB +0.25% 30.50 kB 30.58 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.23% 170.89 kB 171.28 kB +0.25% 30.49 kB 30.57 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.23% 171.61 kB 172.01 kB +0.25% 30.68 kB 30.76 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.23% 171.89 kB 172.28 kB +0.22% 30.63 kB 30.70 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.23% 173.08 kB 173.47 kB +0.22% 30.68 kB 30.75 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.22% 174.78 kB 175.17 kB +0.27% 30.95 kB 31.03 kB
oss-stable-semver/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.22% 177.12 kB 177.52 kB +0.28% 40.48 kB 40.59 kB
oss-stable/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.22% 177.15 kB 177.54 kB +0.28% 40.50 kB 40.61 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.22% 176.13 kB 176.52 kB +0.27% 31.19 kB 31.28 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.22% 176.25 kB 176.64 kB +0.27% 31.22 kB 31.31 kB

Generated by 🚫 dangerJS against 60ae1c4

@unstubbable unstubbable marked this pull request as ready for review August 30, 2025 22:03
@unstubbable unstubbable requested review from eps1lon and gnoff August 30, 2025 22:04
@unstubbable unstubbable force-pushed the fix-missing-key-warning branch from 29d2350 to c4db503 Compare August 30, 2025 22:21
@unstubbable unstubbable force-pushed the fix-missing-key-warning branch from c4db503 to 60ae1c4 Compare August 30, 2025 22:32
@unstubbable unstubbable requested review from sebmarkbage and removed request for gnoff August 31, 2025 20:25
@imshus

This comment has been minimized.

@eps1lon eps1lon merged commit bb6f0c8 into facebook:main Sep 1, 2025
241 checks passed
github-actions bot pushed a commit that referenced this pull request Sep 1, 2025
github-actions bot pushed a commit that referenced this pull request Sep 1, 2025
unstubbable added a commit to unstubbable/react that referenced this pull request Sep 1, 2025
Small follow-up to facebook#34350. The `_store` property is now only assigned in
development mode when creating lazy types. It also uses the `validated`
value that was passed to `createElement`, if applicable.
unstubbable added a commit that referenced this pull request Sep 1, 2025
…34354)

Small follow-up to #34350. The `_store` property is now only assigned in
development mode when creating lazy types. It also uses the `validated`
value that was passed to `createElement`, if applicable.
@sebmarkbage
Copy link
Collaborator

Doesn't make sense to me that a Lazy node would even get validated. It can't have a key and so there's nothing to validate.

It should also never drill into assuming the data structure of Lazy in React code.

The validation should drill into the child like what ChildFiber does.

https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactChildFiber.js#L1059-L1065

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.

5 participants