{"record":{"id":"a0c4ec0bd04be317","repo":"react/react","slug":"startgesturetransition-is-not-yet-supported-in-rea","errorCode":null,"errorMessage":"startGestureTransition is not yet supported in react-art.","messagePattern":"startGestureTransition is not yet supported in react-art\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/react-art/src/ReactFiberConfigART.js","lineNumber":570,"sourceCode":"export function addViewTransitionFinishedListener(\n  transition: RunningViewTransition,\n  callback: () => void,\n) {\n  callback();\n}\n\nexport type ViewTransitionInstance = null | {name: string, ...};\n\nexport function createViewTransitionInstance(\n  name: string,\n): ViewTransitionInstance {\n  return null;\n}\n\nexport type GestureTimeline = null;\n\nexport function getCurrentGestureOffset(provider: GestureTimeline): number {\n  throw new Error('startGestureTransition is not yet supported in react-art.');\n}\n\nexport function clearContainer(container) {\n  // TODO Implement this\n}\n\nexport function getInstanceFromNode(node): null {\n  return null;\n}\n\nexport function beforeActiveInstanceBlur(internalInstanceHandle: Object) {\n  // noop\n}\n\nexport function afterActiveInstanceBlur() {\n  // noop\n}\n","sourceCodeStart":552,"sourceCodeEnd":588,"githubUrl":"https://github.com/react/react/blob/22e4f993c7ce9373c95aef093b003f84249e2045/packages/react-art/src/ReactFiberConfigART.js#L552-L588","documentation":"getCurrentGestureOffset is part of the gesture-transition host-config surface. react-art sets GestureTimeline to null and throws here because gesture-driven view transitions are not supported on the ART renderer. Any feature that reads the current gesture offset while rendering to ART will hit this.","triggerScenarios":"Using startGestureTransition / gesture-based view transitions in a tree rendered by react-art; a reconciler or component that calls getCurrentGestureOffset on the ART host config; sharing gesture-transition code between DOM and ART renderers.","commonSituations":"Adopting the experimental gesture transition APIs in an ART-rendered app; component libraries that unconditionally wire up gesture transitions; reconciler upgrades that call getCurrentGestureOffset more eagerly.","solutions":["Do not use gesture transitions in react-art trees — ART does not implement them.","Gate gesture-transition code so it only runs for DOM-rendered output.","If required, implement getCurrentGestureOffset (and GestureTimeline) for the ART renderer."],"exampleFix":"// before: gesture transition active in ART tree\nstartGestureTransition(...);\n// later: getCurrentGestureOffset(...) -> throws\n\n// after: disable gesture transitions for ART\n// (do not call startGestureTransition when rendering to ART)","handlingStrategy":"validation","validationCode":"function supportsGestureTransitions(renderer: 'art'|'dom'): boolean { return renderer === 'dom'; }\nif (!supportsGestureTransitions(currentRenderer)) {\n  // do not call startGestureTransition / getCurrentGestureOffset\n}","typeGuard":"function isGestureCapable(hostConfig: any): boolean {\n  // ART throws in getCurrentGestureOffset; capability-check before calling\n  try { return hostConfig.GestureTimeline != null /* ART sets it to null */ === false; } catch { return false; }\n}","tryCatchPattern":null,"preventionTips":["Do not use gesture transitions in react-art.","Gate gesture-transition code on renderer capability.","Keep gesture APIs DOM-only in shared component code."],"tags":["react-art","gesture-transition","not-implemented","host-config"],"backgroundTag":null,"analyzedSha":"22e4f993c7ce9373c95aef093b003f84249e2045","analyzedAt":"2026-08-12T22:33:25.580Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}