{"record":{"id":"893534a2d2f6efd0","repo":"facebook/react","slug":"329","errorCode":"329","errorMessage":"Unknown root exit status.","messagePattern":"Unknown root exit status\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/react-reconciler/src/ReactFiberWorkLoop.js","lineNumber":1479,"sourceCode":"        workInProgressDeferredLane,\n        didAttemptEntireTree,\n      );\n      return;\n    }\n    case RootErrored: {\n      // This render errored. Ignore any recoverable errors because we weren't actually\n      // able to recover. Instead, whatever the final errors were is the ones we log.\n      // This ensures that we only log the actual client side error if it's just a plain\n      // error thrown from a component on the server and the client.\n      workInProgressRootRecoverableErrors = null;\n      break;\n    }\n    case RootSuspended:\n    case RootCompleted: {\n      break;\n    }\n    default: {\n      throw new Error('Unknown root exit status.');\n    }\n  }\n\n  if (shouldForceFlushFallbacksInDEV()) {\n    // We're inside an `act` scope. Commit immediately.\n    completeRoot(\n      root,\n      finishedWork,\n      lanes,\n      workInProgressRootRecoverableErrors,\n      workInProgressTransitions,\n      workInProgressRootDidIncludeRecursiveRenderUpdate,\n      workInProgressDeferredLane,\n      workInProgressRootInterleavedUpdatedLanes,\n      workInProgressSuspendedRetryLanes,\n      workInProgressRootDidSkipSuspendedSiblings,\n      exitStatus,\n      null,","sourceCodeStart":1461,"sourceCodeEnd":1497,"githubUrl":"https://github.com/facebook/react/blob/eafeac097ba51e1eab809c07102126bd5f8e5425/packages/react-reconciler/src/ReactFiberWorkLoop.js#L1461-L1497","documentation":"The exit-status switch in finishConcurrentRender handles every defined RootExitStatus; falling into the default branch means the status variable held a value outside the known enum — an internal invariant failure (error code 329). It cannot be caused by application code directly.","triggerScenarios":"workInProgressRootExitStatus containing an unexpected numeric value when commit decisions are made, e.g. after memory corruption of module state, a renderer fork that extended the enum, or a reconciler bug that skips status assignment.","commonSituations":"Custom forks of react-reconciler that add exit statuses without updating this switch; two reconciler instances sharing module state; extremely rare upstream regressions in canary builds.","solutions":["If you maintain a reconciler fork, update this switch to cover your added exit statuses","Verify only one react-reconciler version is loaded (duplicates can mix code paths)","Upgrade to the latest release; if it reproduces on stock React, file an issue with the status value and stack trace"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["If you fork react-reconciler, extend the exit-status switch for any status you add","Load only one reconciler version per page","Report unexpected enum values upstream with the numeric status from the stack"],"tags":["internal-invariant","render","exit-status"],"backgroundTag":"react-internal-invariant","analyzedSha":"eafeac097ba51e1eab809c07102126bd5f8e5425","analyzedAt":"2026-08-21T22:01:08.818Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}