# RuntimeError: Cannot call 'receive' once a disconnect message has been received.

- **ID:** `python/starlette-websocket-receive`
- **Domain:** python
- **Category:** runtime_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

Attempting to receive more messages after the WebSocket client has disconnected.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 0.30.x | active | — | — |
| 0.40.x | active | — | — |

## Workarounds

1. **** (95% success)
   ```
   while True:
    try:
        data = await websocket.receive_text()
    except WebSocketDisconnect:
        break
   ```
2. **** (90% success)
   ```
   if websocket.client_state == WebSocketState.CONNECTED:
    data = await websocket.receive_text()
   ```

## Dead Ends

- **** — May cause infinite loop if not breaking. (70% fail)
- **** — Leaves the connection in an inconsistent state. (80% fail)
