{"record":{"id":"d8b4aee4210c1b6d","repo":"pmndrs/react-three-fiber","slug":"not-implemented","errorCode":null,"errorMessage":"Not implemented.","messagePattern":"Not implemented\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/fiber/src/core/reconciler.tsx","lineNumber":778,"sourceCode":"\n  // https://github.com/facebook/react/pull/32038\n  createViewTransitionInstance: (_name: string): null => null,\n\n  // https://github.com/facebook/react/pull/32379\n  // https://github.com/facebook/react/pull/32786\n  getCurrentGestureOffset(_provider: null): number {\n    throw new Error('startGestureTransition is not yet supported in react-three-fiber.')\n  },\n\n  // https://github.com/facebook/react/pull/32500\n  cloneMutableInstance(instance: any, _keepChildren: any) {\n    return instance\n  },\n  cloneMutableTextInstance(textInstance: any) {\n    return textInstance\n  },\n  cloneRootViewTransitionContainer(_rootContainer: any) {\n    throw new Error('Not implemented.')\n  },\n  removeRootViewTransitionClone(_rootContainer: any, _clone: any) {\n    throw new Error('Not implemented.')\n  },\n\n  // https://github.com/facebook/react/pull/32465\n  createFragmentInstance: (_fiber: any): null => null,\n  updateFragmentInstanceFiber(_fiber: any, _instance: any): void {},\n  commitNewChildToFragmentInstance(_child: any, _fragmentInstance: any): void {},\n  deleteChildFromFragmentInstance(_child: any, _fragmentInstance: any): void {},\n\n  // https://github.com/facebook/react/pull/32653\n  measureClonedInstance: (_instance: any) => null,\n\n  // https://github.com/facebook/react/pull/32819\n  maySuspendCommitOnUpdate: (_type: any, _oldProps: any, _newProps: any) => false,\n  maySuspendCommitInSyncRender: (_type: any, _props: any) => false,\n","sourceCodeStart":760,"sourceCodeEnd":796,"githubUrl":"https://github.com/pmndrs/react-three-fiber/blob/ff3899dbf43d2a88895fecf53c147192abfd7431/packages/fiber/src/core/reconciler.tsx#L760-L796","documentation":"React's reconciler host config requires cloneRootViewTransitionContainer, which is invoked when React clones the root container during a native <ViewTransition>. This custom react-three-fiber reconciler does not support root view transitions, so it throws 'Not implemented.' to fail fast rather than silently corrupt the tree.","triggerScenarios":"Rendering React's experimental <ViewTransition> (or React 19 canary view-transition APIs) at the root of an R3F/rttr tree, which makes the reconciler call hostConfig.cloneRootViewTransitionContainer, which is a stub that throws.","commonSituations":"Using canary/experimental React builds where ViewTransition is enabled by default, upgrading React versions that add new host-config methods, or copying R3F's reconciler into a project without implementing newer required methods.","solutions":["Remove or gate <ViewTransition> usage inside the R3F canvas/test-renderer tree","Pin React to the exact version R3F declares (usually stable, non-canary) so the method is never invoked","If you maintain a fork, implement cloneRootViewTransitionContainer by returning the container (like cloneContainerInstance does)","Wrap the render in an error boundary and fall back to rendering without ViewTransition"],"exampleFix":"// before\n<Canvas>\n  <ViewTransition>\n    <Scene />\n  </ViewTransition>\n</Canvas>\n\n// after\n<Canvas>\n  <Scene />\n</Canvas>","handlingStrategy":"validation","validationCode":"const supportsViewTransition = typeof ViewTransition === 'undefined' // stable React: no VT\nif (!supportsViewTransition && childrenUsesViewTransition) {\n  throw new Error('ViewTransition is not supported inside Canvas in this React version')\n}","typeGuard":"const isViewTransitionElement = (el: React.ReactElement | null | undefined): boolean =>\n  !!el && typeof el.type === 'symbol' && String(el.type).includes('viewtransition')","tryCatchPattern":null,"preventionTips":["Pin React to the stable version declared by @react-three/fiber","Never render <ViewTransition> inside <Canvas> on unsupported versions","Add a CI render test that fails fast if experimental React APIs leak into the scene graph"],"tags":["react-reconciler","view-transition","not-implemented","experimental-react"],"backgroundTag":"unimplemented-host-config-method","analyzedSha":"ff3899dbf43d2a88895fecf53c147192abfd7431","analyzedAt":"2026-08-28T10:16:38.568Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}