Skip to content

Conversation

@jackpope
Copy link
Contributor

@jackpope jackpope commented Jan 15, 2026

I was experimenting with animations in SuspenseList and hit a crash using ViewTransition as a direct child with revealOrder="together"

    TypeError: Cannot read properties of null (reading 'autoName')

      33 |     return props.name;
      34 |   }
    > 35 |   if (instance.autoName !== null) {
         |                ^
      36 |     return instance.autoName;
      37 |   }

When ViewTransition is direct child of SuspenseList, the second render pass calls resetChildFibers, setting stateNode to null. Other fibers create stateNode in completeWork. ViewTransition does not, so stateNode is lost.

Followed the pattern used for Offscreen to update stateNode in beginWork if it is null.

Also added a regression test.

When ViewTransition is direct child of SuspenseList, the second render pass calls resetChildFibers, setting stateNode to null. Other fibers create stateNode in completeWork. ViewTransition does not, so stateNode is lost.

Followed the pattern used for Offscreen to update stateNode in beginWork if it is null.

Also added a regression test.
@react-sizebot
Copy link

Comparing: bb8a76c...fff8811

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.84 kB 6.84 kB = 1.88 kB 1.88 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 608.03 kB 607.81 kB = 107.61 kB 107.59 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.84 kB 6.84 kB = 1.88 kB 1.88 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 667.26 kB 667.03 kB = 117.51 kB 117.47 kB
facebook-www/ReactDOM-prod.classic.js = 693.38 kB 693.12 kB = 122.00 kB 121.96 kB
facebook-www/ReactDOM-prod.modern.js = 683.76 kB 683.55 kB = 120.40 kB 120.35 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react-debug-tools/cjs/react-debug-tools.development.js = 33.37 kB 33.29 kB = 5.93 kB 5.92 kB
oss-stable-semver/react-debug-tools/cjs/react-debug-tools.development.js = 33.37 kB 33.29 kB = 5.93 kB 5.92 kB
oss-stable/react-debug-tools/cjs/react-debug-tools.development.js = 33.37 kB 33.29 kB = 5.93 kB 5.92 kB
oss-experimental/react-debug-tools/cjs/react-debug-tools.production.js = 29.78 kB 29.70 kB = 5.81 kB 5.80 kB
oss-stable-semver/react-debug-tools/cjs/react-debug-tools.production.js = 29.78 kB 29.70 kB = 5.81 kB 5.80 kB
oss-stable/react-debug-tools/cjs/react-debug-tools.production.js = 29.78 kB 29.70 kB = 5.81 kB 5.80 kB

Generated by 🚫 dangerJS against fff8811

Copy link
Collaborator

@sebmarkbage sebmarkbage left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be an issue with many other ones too like Profiler, TracingMarker, Portals, etc. so might need a more systemic fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants