# TimeoutError: The read operation timed out (after 30s) while handling concurrent requests

- **ID:** `python/fastapi-async-def-blocking-call`
- **Domain:** python
- **Category:** runtime_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

A blocking call (e.g., `requests.get`, `time.sleep`, synchronous DB driver) inside an `async def` endpoint blocks the event loop, starving other requests.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 0.100+ | active | — | — |

## Workarounds

1. **** (93% success)
   ```
   from fastapi.concurrency import run_in_threadpool
result = await run_in_threadpool(requests.get, url)
   ```
2. **** (95% success)
   ```
   async with httpx.AsyncClient() as c:
    r = await c.get(url)
   ```

## Dead Ends

- **** — Delays symptom; event loop still blocked. (75% fail)
- **** — Each worker still blocks on the same call. (70% fail)
