| Layer | Status Code | Condition | Client Action |
|---|---|---|---|
| Supabase JWT | 401 | token invalid | redirect /login |
| RevenueCat | 429 | quota exceeded | show upgrade modal |
| Build-profile in progress | 202 | cache miss & job queued | poll after retry_after |
| LLM failure | 500 | timeouts / model error | retry button (3 attempts) |