AI & Agent Dev Bug Sandbox logo
AI & Agent Dev Bug Sandbox
Back to Radar

React #482 Instead Of Error.Js When A Component Throws While A Server Action Is In Flight

In Next.js 16.3.6 and 16.3.8, a render error during an in-flight server action causes the shell to suspend repeatedly, eventually throwing minified React error #482 and replacing the page with 'This page couldn't load' instead of rendering error.js.

highConfidence 90%Next.jsAffected V16.3.6Affected V16.3.8Fixed V16.4.0-Canary.58

Origin Analysis

React's error recovery (recoverFromConcurrentError) retries all pending lanes synchronously when a render error occurs. Because useActionQueue reads router state via use() while a server action is in flight and no Suspense boundary exists above Router, the retry suspends in the shell. The affected React build leaves error recovery enabled, so the error boundary never commits; repeated dispatches increment shellSuspendCounter until it exceeds 100 and throws error #482. This is a regression from react/react#36911, fixed upstream by react/react#37739 (merged 2026-10-02) and brought to Next.js canary via #99600.
1. Clone https://github.com/onyxdevs/next-react-482-repro. 2. Run npm install && npm run build && npm start. 3. Open http://localhost:4390. 4. Click 'Throw during render'. 5. Observe that error.js never renders, the counter freezes for ~6 seconds, and then the page displays 'This page couldn't load' with console error #482.

Fixing Code Block

Edge Case Audit

Canary releases may contain other unstable changes or regressions. Thoroughly test the application after upgrading, especially server action flows and error boundaries. To rollback, reinstall the previous Next.js version (e.g., next@16.3.8) and remove any lockfile changes. The canary version may also require matching React canary builds; check peer dependency warnings.

Ecosystem Topology