npm / @react-three/fiber
@react-three/fiber
What changed in @react-three/fiber 9, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
5 behavior and defaults19 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@react-three/fiber 924 changes
Behavior and default changes 5
Pixel ratio updates automatically when moving between displays or zooming.
attach is applied on its first set; later dynamic updates to it are ignored.
Event priorities now use the same list as react-dom, aligning the priority of continuous and impulse events.
The reconciler can queue microtasks to defer work based on the priorities set for that work.
Uniforms objects now have a stable reference, and passed objects are copied into them. This prevents desync and allows inline uniform props and individual uniforms using pierce notation.
Fixes and other changes 19
Dragging stays active when an object's args change, keeping pointer capture across instance reconstruction.
Removing an object requests a frame so it disappears immediately instead of lingering as a ghost.
Unmounted portals can now be cleaned up properly, preventing their root state from being retained by the parent and allowing garbage collection.
JSX type registration no longer causes React.ElementType props to collapse to never or break unrelated React types.
Activity visibility now works across R3F and React DOM boundaries, including when Activity wraps Canvas; hidden Canvas roots remain alive and visibility is bridged into scenes.
Canvas rerenders no longer reset runtime settings.
The renderer R3F creates is now disposed when its root unmounts; the notes clarify in which instances R3F auto-disposes.
R3F is compatible with React 19.3.0, so developers can run the latest React without conflicts; not all new React APIs are fully supported.
React roots are configured synchronously, with rendering gated on the renderer when it requires async behavior, avoiding out-of-sync issues.
A root remounted during the unmount grace period is no longer torn down.
Strict Mode no longer causes problems for the canvas.
Host props such as dispose and onUpdate now update properly, and unsetting them no longer unexpectedly overwrites imperatively updated values.
Instance reconstructions caused by args updates are properly batched, so one instance is not skipped when another bails out of updates.
Internal children are reordered correctly when React reorders children, preventing the internal map from drifting out of sync.
Unset pierced props now reset to the pierced prop's default value rather than to the base object.
Interactivity state now transfers seamlessly when instances are swapped.
R3F is compatible with React 19.0 through 19.2, including React 19.2's Activity feature.
A workaround adds compatibility with Expo SDK 54.
Passes the DevTools config through createReconciler to fix React DevTools.