pmndrs/react-three-fiber · warning · Error

startGestureTransition is not yet supported in react-three-f

Error message

startGestureTransition is not yet supported in react-three-fiber.

What it means

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.

Source

Thrown at packages/fiber/src/core/reconciler.tsx:767

  hasInstanceAffectedParent: (_oldMeasurement: any, _newMeasurement: any): boolean => false,

  // https://github.com/facebook/react/pull/32002
  // https://github.com/facebook/react/pull/34486
  suspendOnActiveViewTransition(_state: any, _container: any) {},

  // https://github.com/facebook/react/pull/32451
  // https://github.com/facebook/react/pull/32760
  startGestureTransition: () => null,
  startViewTransition: () => null,
  stopViewTransition(_transition: null) {},

  // https://github.com/facebook/react/pull/32038
  createViewTransitionInstance: (_name: string): null => null,

  // https://github.com/facebook/react/pull/32379
  // https://github.com/facebook/react/pull/32786
  getCurrentGestureOffset(_provider: null): number {
    throw new Error('startGestureTransition is not yet supported in react-three-fiber.')
  },

  // https://github.com/facebook/react/pull/32500
  cloneMutableInstance(instance: any, _keepChildren: any) {
    return instance
  },
  cloneMutableTextInstance(textInstance: any) {
    return textInstance
  },
  cloneRootViewTransitionContainer(_rootContainer: any) {
    throw new Error('Not implemented.')
  },
  removeRootViewTransitionClone(_rootContainer: any, _clone: any) {
    throw new Error('Not implemented.')
  },

  // https://github.com/facebook/react/pull/32465
  createFragmentInstance: (_fiber: any): null => null,

View on GitHub (pinned to ff3899dbf4)

Solutions

  1. Avoid calling startGestureTransition or gesture-based View Transition APIs on elements rendered inside <Canvas>; wrap only DOM-rendered content with them.
  2. Move the content you want to gesture-transition outside the Canvas so it is managed by the DOM host config, which supports these methods.
  3. 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.
  4. Track the R3F repository for gesture/ViewTransition support and upgrade once implemented.

Example fix

// before
<Canvas>
  <div {...startGestureTransitionHandlers} /> {/* transition API applied inside Canvas */}
</Canvas>

// after
<>
  <div {...startGestureTransitionHandlers} /> {/* DOM content stays on DOM host */}
  <Canvas><Scene /></Canvas>
</>
Defensive patterns

Strategy: fallback

Validate before calling

null

Type guard

null

Try / catch

try {
  await startGestureTransition(() => updateScene())
} catch (e) {
  if (e instanceof Error && e.message.includes('not yet supported in react-three-fiber')) {
    // fall back to plain transition without gesture offsets
    await updateScene()
  } else throw e
}

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of pmndrs/react-three-fiber@ff3899dbf4 (2026-08-28). Data as JSON: /api/errors/73280d63a800bb3d. Report an issue: GitHub.