{"record":{"id":"662fd09302b88928","repo":"facebook/react","slug":"overrideerror-not-supported-by-this-renderer","errorCode":null,"errorMessage":"overrideError not supported by this renderer","messagePattern":"overrideError not supported by this renderer","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/react-devtools-shared/src/backend/legacy/renderer.js","lineNumber":1201,"sourceCode":"      }\n    }\n  }\n\n  // v16+ only features\n  const getProfilingData = () => {\n    throw new Error('getProfilingData not supported by this renderer');\n  };\n  const handleCommitFiberRoot = () => {\n    throw new Error('handleCommitFiberRoot not supported by this renderer');\n  };\n  const handleCommitFiberUnmount = () => {\n    throw new Error('handleCommitFiberUnmount not supported by this renderer');\n  };\n  const handlePostCommitFiberRoot = () => {\n    throw new Error('handlePostCommitFiberRoot not supported by this renderer');\n  };\n  const overrideError = () => {\n    throw new Error('overrideError not supported by this renderer');\n  };\n  const overrideSuspense = () => {\n    throw new Error('overrideSuspense not supported by this renderer');\n  };\n  const overrideSuspenseMilestone = () => {\n    throw new Error('overrideSuspenseMilestone not supported by this renderer');\n  };\n  const startProfiling = () => {\n    // Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n  };\n  const stopProfiling = () => {\n    // Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n  };\n\n  function getBestMatchForTrackedPath(): PathMatch | null {\n    // Not implemented.\n    return null;\n  }","sourceCodeStart":1183,"sourceCodeEnd":1219,"githubUrl":"https://github.com/facebook/react/blob/eafeac097ba51e1eab809c07102126bd5f8e5425/packages/react-devtools-shared/src/backend/legacy/renderer.js#L1183-L1219","documentation":"The legacy renderer adapter stubs overrideError as a throwing no-op. The 'force error boundary' debug toggle works by flipping fiber error-boundary state via the v16+ reconciler instrumentation; React 15's stack reconciler has no such mechanism, so the backend refuses the command.","triggerScenarios":"The DevTools frontend sends the 'overrideError' message — triggered by the debug-panel action that forces an error boundary to show its fallback (or a component to error) — for a component whose renderer is the legacy (v15) adapter.","commonSituations":"Using DevTools debug toggles on a React 15 app; mixed v15/v16 multi-root apps where a legacy root is selected; frontend/backend version skew that leaves the toggle enabled for 'outdated' build types.","solutions":["Do not use the error-boundary debug toggle on v15 roots — the feature requires fiber.","Upgrade the inspected app to React 16.8+.","Update DevTools so error-override controls are hidden for legacy build types.","For embedders: check renderer.findFiberByHostInstance before sending 'overrideError'."],"exampleFix":"// before\nbridge.send('overrideError', {id, rendererID, isForceEnabled});\n\n// after\nif (typeof renderer.findFiberByHostInstance === 'function') {\n  bridge.send('overrideError', {id, rendererID, isForceEnabled});\n}","handlingStrategy":"validation","validationCode":"const isFiberRenderer = renderer =>\n  typeof renderer.findFiberByHostInstance === 'function';\nif (isFiberRenderer(renderer)) {\n  bridge.send('overrideError', {id, rendererID, isForceEnabled});\n}","typeGuard":"function isFiberRenderer(renderer) {\n  return typeof renderer.findFiberByHostInstance === 'function';\n}","tryCatchPattern":"try {\n  bridge.send('overrideError', {id, rendererID, isForceEnabled});\n} catch (error) {\n  if (/not supported by this renderer/.test(error.message)) return;\n  throw error;\n}","preventionTips":["Hide error-boundary debug toggles for renderers with build type 'outdated'.","Gate debug actions on fiber capability, not just UI state.","Update DevTools alongside React upgrades."],"tags":["devtools","error-boundary","debug-toggle","legacy-renderer"],"backgroundTag":"unsupported-renderer-feature","analyzedSha":"eafeac097ba51e1eab809c07102126bd5f8e5425","analyzedAt":"2026-08-21T22:01:08.818Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}