{"record":{"id":"73280d63a800bb3d","repo":"pmndrs/react-three-fiber","slug":"startgesturetransition-is-not-yet-supported-in-rea","errorCode":null,"errorMessage":"startGestureTransition is not yet supported in react-three-fiber.","messagePattern":"startGestureTransition is not yet supported in react-three-fiber\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"packages/fiber/src/core/reconciler.tsx","lineNumber":767,"sourceCode":"  hasInstanceAffectedParent: (_oldMeasurement: any, _newMeasurement: any): boolean => false,\n\n  // https://github.com/facebook/react/pull/32002\n  // https://github.com/facebook/react/pull/34486\n  suspendOnActiveViewTransition(_state: any, _container: any) {},\n\n  // https://github.com/facebook/react/pull/32451\n  // https://github.com/facebook/react/pull/32760\n  startGestureTransition: () => null,\n  startViewTransition: () => null,\n  stopViewTransition(_transition: null) {},\n\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,","sourceCodeStart":749,"sourceCodeEnd":785,"githubUrl":"https://github.com/pmndrs/react-three-fiber/blob/ff3899dbf43d2a88895fecf53c147192abfd7431/packages/fiber/src/core/reconciler.tsx#L749-L785","documentation":"This error comes from R3F's React custom reconciler host config. React 19 added gesture-transition related host methods (getCurrentGestureOffset / startGestureTransition, PRs #32379/#32786), and R3F explicitly implements getCurrentGestureOffset as a throw because there is no meaningful gesture offset concept for a WebGL scene graph. If React ever calls it (e.g. through a gesture/transition API on a host component), R3F fails loudly rather than returning a wrong value.","triggerScenarios":"Only triggered if React's gesture-transition APIs invoke getCurrentGestureOffset on an R3F host instance — e.g. calling experimental startGestureTransition / View Transition-like APIs that query gesture offsets on elements rendered inside <Canvas>. Normal R3F usage (meshes, hooks, regular state transitions) never calls this method.","commonSituations":"Using experimental React gesture/view-transition APIs while a component tree is rendered by the R3F reconciler; mixing React Native Web or gesture libraries that query host gesture offsets; running a canary React version where these APIs are exercised automatically by a framework abstraction.","solutions":["Avoid calling startGestureTransition or gesture-based View Transition APIs on elements rendered inside <Canvas>; wrap only DOM-rendered content with them.","Move the content you want to gesture-transition outside the Canvas so it is managed by the DOM host config, which supports these methods.","If a framework/library triggers it implicitly, pin React to a version where the gesture API is opt-in and not invoked for custom renderers.","Track the R3F repository for gesture/ViewTransition support and upgrade once implemented."],"exampleFix":"// before\n<Canvas>\n  <div {...startGestureTransitionHandlers} /> {/* transition API applied inside Canvas */}\n</Canvas>\n\n// after\n<>\n  <div {...startGestureTransitionHandlers} /> {/* DOM content stays on DOM host */}\n  <Canvas><Scene /></Canvas>\n</>","handlingStrategy":"fallback","validationCode":"null","typeGuard":"null","tryCatchPattern":"try {\n  await startGestureTransition(() => updateScene())\n} catch (e) {\n  if (e instanceof Error && e.message.includes('not yet supported in react-three-fiber')) {\n    // fall back to plain transition without gesture offsets\n    await updateScene()\n  } else throw e\n}","preventionTips":["Don't target Canvas-rendered content with React's experimental gesture/view-transition APIs.","Keep DOM-driven transition surfaces outside <Canvas>.","Pin React versions whose gesture APIs are strictly opt-in when running canary."],"tags":["react-three-fiber","react-19","gestures","host-config","unsupported-api"],"backgroundTag":"unsupported-host-api","analyzedSha":"ff3899dbf43d2a88895fecf53c147192abfd7431","analyzedAt":"2026-08-28T10:16:38.568Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}