facebook/react · error
329
329
Error message
Unknown root exit status.
What it means
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.
Source
Thrown at packages/react-reconciler/src/ReactFiberWorkLoop.js:1479
workInProgressDeferredLane,
didAttemptEntireTree,
);
return;
}
case RootErrored: {
// This render errored. Ignore any recoverable errors because we weren't actually
// able to recover. Instead, whatever the final errors were is the ones we log.
// This ensures that we only log the actual client side error if it's just a plain
// error thrown from a component on the server and the client.
workInProgressRootRecoverableErrors = null;
break;
}
case RootSuspended:
case RootCompleted: {
break;
}
default: {
throw new Error('Unknown root exit status.');
}
}
if (shouldForceFlushFallbacksInDEV()) {
// We're inside an `act` scope. Commit immediately.
completeRoot(
root,
finishedWork,
lanes,
workInProgressRootRecoverableErrors,
workInProgressTransitions,
workInProgressRootDidIncludeRecursiveRenderUpdate,
workInProgressDeferredLane,
workInProgressRootInterleavedUpdatedLanes,
workInProgressSuspendedRetryLanes,
workInProgressRootDidSkipSuspendedSiblings,
exitStatus,
null,View on GitHub (pinned to eafeac097b)
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
Defensive patterns
Strategy: try-catch
Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- 345
- Expected to see a frame at the next depth.
- Expected root pseudo key to be known.
- Expected counter to be known.
- Expected the root instance to exist when computing a path
AI-assisted analysis of facebook/react@eafeac097b (2026-08-21).
Data as JSON: /api/errors/893534a2d2f6efd0.
Report an issue: GitHub.