facebook/react · error · Error
startGestureTransition is not yet supported in react-art.
Error message
startGestureTransition is not yet supported in react-art.
What it means
Gesture-driven view transitions require the host renderer to track an interactive gesture timeline. react-art declares GestureTimeline as null and implements getCurrentGestureOffset as a hard throw so that any accidental use of startGestureTransition on ART content fails loudly rather than returning a wrong offset. The error names the unsupported feature: startGestureTransition is not yet supported in react-art.
Source
Thrown at packages/react-art/src/ReactFiberConfigART.js:570
export function addViewTransitionFinishedListener(
transition: RunningViewTransition,
callback: () => void,
) {
callback();
}
export type ViewTransitionInstance = null | {name: string, ...};
export function createViewTransitionInstance(
name: string,
): ViewTransitionInstance {
return null;
}
export type GestureTimeline = null;
export function getCurrentGestureOffset(provider: GestureTimeline): number {
throw new Error('startGestureTransition is not yet supported in react-art.');
}
export function clearContainer(container) {
// TODO Implement this
}
export function getInstanceFromNode(node): null {
return null;
}
export function beforeActiveInstanceBlur(internalInstanceHandle: Object) {
// noop
}
export function afterActiveInstanceBlur() {
// noop
}
View on GitHub (pinned to eafeac097b)
Solutions
- Use gesture transitions only on renderers that implement them (DOM with supporting browsers, native renderers)
- For ART content, drive gestures manually with pointer events and mutate shape props/state to animate
- Restructure so the gesture boundary wraps the DOM container of the Surface, not the ART tree itself
Example fix
// before
startGestureTransition(gestureTimeline); // timeline rooted in react-art
// after
// drive the canvas manually:
const onPointerMove = e => setOffset(e.clientX - startX);
<Surface><Group x={offset}>...</Group></Surface> Defensive patterns
Strategy: fallback
Validate before calling
// Detect gesture support before using startGestureTransition const supportsGestureTransitions = typeof startGestureTransition === 'function' && rendererName === 'dom'; const handler = supportsGestureTransitions ? startGestureTransition(timeline) : trackPointerManually(onOffsetChange);
Try / catch
Wrap gesture setup in try/catch matching /startGestureTransition is not yet supported/ and fall back to pointer-event-driven manual animation of the ART shapes.
Prevention
- Capability-check renderer features before using experimental gesture APIs
- Drive ART animations with pointer events and state, not renderer gesture timelines
- Keep ART surfaces out of gesture-transition roots
When it happens
Trigger: Calling startGestureTransition (gesture-driven ViewTransition API) on a transition rooted in react-art content, or React querying getCurrentGestureOffset for an ART root while tracking a gesture; also hit directly if you call the host-config export yourself.
Common situations: Porting gesture-transition demos (built for DOM/Android renderers) to canvas-rendered ART trees; enabling gesture flags globally; sharing transition components between renderers that support gestures and ART which does not.
Related errors
AI-assisted analysis of facebook/react@eafeac097b (2026-08-21).
Data as JSON: /api/errors/8cf03b2b97818894.
Report an issue: GitHub.