Error: A component suspended while responding to synchronous input.
A component suspended (lazy load or data fetch) during an update that wasn’t wrapped in a transition, and there is no Suspense boundary to catch it.
Seen on:
React
Meaning
React 18 requires a <Suspense> boundary above components that suspend; for user-triggered updates use startTransition to keep the old UI visible.
Common causes
- React.lazy component without a <Suspense> ancestor
- Suspense-enabled data fetching (React Query suspense, Relay) without a boundary
- Updates that suspend not wrapped in startTransition
⚡ Quick fix
- Wrap lazy/suspending components in <Suspense fallback={…}>
- Use startTransition for navigation-like updates
Detailed fix by platform
React
- jsx
<Suspense fallback={<Spinner />}> <SettingsPage /> </Suspense>
How to diagnose
- Component — Which one suspended?
- Boundary — Is there a Suspense above it?
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026