# Error: Missing Suspense boundary. The page uses streaming but no Suspense boundary wraps the async component.

- **ID:** `nextjs/suspense-boundary-missing-streaming`
- **Domain:** nextjs
- **Category:** runtime_error
- **Verification:** ai_generated
- **Fix Rate:** 93%

## Root Cause

An async server component that uses streaming (e.g., by awaiting a promise) is not wrapped in a Suspense boundary, causing Next.js to fail to render the fallback UI during streaming.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| next@14.1.0 | active | — | — |
| next@15.0.0 | active | — | — |

## Workarounds

1. **Wrap the async component in a Suspense boundary in the parent layout or page.** (95% success)
   ```
   Wrap the async component in a Suspense boundary in the parent layout or page.
   ```
2. **Use the loading.js file at the same route segment level to provide a default Suspense boundary.** (90% success)
   ```
   Use the loading.js file at the same route segment level to provide a default Suspense boundary.
   ```

## Dead Ends

- **** — This converts the component to a client component, which cannot use async/await at the top level, causing a different error (async/await not supported in Client Components). (90% fail)
- **** — This changes the data fetching pattern and may break server-side rendering benefits. It also requires converting to a client component, which may not be desired. (60% fail)
