facebook/react · error · Error
Not implemented.
Error message
Not implemented.
What it means
react-art stubs most of the View Transition host-config surface as no-ops because it renders to a canvas, not to DOM views. cloneRootViewTransitionContainer cannot be a no-op: React expects a real clone of the container element when it prepares a root-level view transition, and ART has nothing to clone, so it throws 'Not implemented.' instead of silently corrupting the transition.
Source
Thrown at packages/react-art/src/ReactFiberConfigART.js:508
export function restoreViewTransitionName(instance, props) {
// Noop
}
export function cancelViewTransitionName(instance, name, props) {
// Noop
}
export function cancelRootViewTransitionName(rootContainer) {
// Noop
}
export function restoreRootViewTransitionName(rootContainer) {
// Noop
}
export function cloneRootViewTransitionContainer(rootContainer) {
throw new Error('Not implemented.');
}
export function removeRootViewTransitionClone(rootContainer, clone) {
throw new Error('Not implemented.');
}
export type InstanceMeasurement = null;
export function measureInstance(instance) {
return null;
}
export function measureClonedInstance(instance) {
return null;
}
export function wasInstanceInViewport(measurement): boolean {
return true;View on GitHub (pinned to eafeac097b)
Solutions
- Do not use ViewTransition around react-art content - animate ART shape properties (fill, opacity, transform) directly instead
- Move the ViewTransition boundary so it wraps only DOM-rendered siblings, leaving the ART <Surface> outside it
- Treat the <Surface> itself as the animation unit: it backs onto a real DOM node, so apply CSS transitions to that container element
Example fix
// before
<ViewTransition>
<Surface width={300} height={300}>...</Surface>
</ViewTransition>
// after
<div className="surface-wrap" style={{transition: 'opacity 200ms'}}>
<Surface width={300} height={300}>...</Surface>
</div> Defensive patterns
Strategy: fallback
Validate before calling
// Gate the feature by renderer before mounting, so ViewTransition never wraps ART roots
const isDomRenderer = rendererName === 'dom';
const tree = isDomRenderer
? <ViewTransition>{children}</ViewTransition>
: children; // ART path: no ViewTransition, animate the container instead Try / catch
Wrap the ART mount in an error boundary that, on this Error (match /Not implemented/), re-renders the same children without the ViewTransition wrapper - a graceful degradation path for library code you do not control.
Prevention
- Treat react-art's host config as a DOM subset; check supported APIs before using new React features
- Keep ViewTransition boundaries inside DOM-owned trees only
- Animate the Surface's DOM container with CSS instead of React ViewTransition
When it happens
Trigger: Triggering a ViewTransition (e.g. <ViewTransition> or the document-preparing transition APIs) whose root container is a react-art Surface; React internally calling cloneRootViewTransitionContainer on an ART root during the transition start/prepare phase.
Common situations: Experimenting with the ViewTransition API in an app that renders through react-art; libraries that wrap arbitrary renderer roots in ViewTransition; enabling experimental view-transition flags globally and having them apply to ART roots.
Related errors
- startGestureTransition is not yet supported in react-art.
- ReactART does not support the type "${type}"
- 248
- Not yet implemented.
- 161
AI-assisted analysis of facebook/react@eafeac097b (2026-08-21).
Data as JSON: /api/errors/a70d297d26818b89.
Report an issue: GitHub.