- Parse API error responses consistently.
- Map error codes to clear user messages.
- Retry only transient failures (for example 429, 5xx).
- Log failures with request context for debugging.
How to handle Crave API errors, retries, and user-facing fallbacks.