| 400 | invalid_request_error | Malformed request body or missing required field. | Verify JSON validity and required fields (model, messages). |
| 401 | auth_error | API key missing, malformed, or revoked. | Re-copy the key from your dashboard. Confirm Authorization: Bearer <key>. |
| 402 | insufficient_balance | Account balance exhausted or per-key monthly budget reached. | Top up via /pricing or raise the key's monthly budget in /dashboard/keys. |
| 403 | model_not_allowed | The model is not in this key's whitelist. | Edit the key whitelist to include the model, or use a key with broader access. |
| 404 | model_not_found | Unknown model id. | Check spelling on /models or via GET /v1/models. |
| 408 | request_timeout | Upstream model didn't respond in time. | Retry with exponential backoff. Consider switching to a faster model on retry. |
| 413 | context_length_exceeded | Input too long for the model's context window. | Trim history, switch to a longer-context model (kimi-k2, claude-opus-4-7). |
| 429 | rate_limit_exceeded | Too many requests for this account or key per minute. | Implement exponential backoff (start at 1s, jitter, cap at 60s). Upgrade plan for higher RPM. |
| 500 | internal_error | Unexpected error inside SeaLink. | Check status.sealink.asia. Retry once. If persistent, report to support. |
| 502 | upstream_error | Upstream provider returned an error. | SeaLink's automatic fallback usually kicks in. Manual retry; consider an alternative model. |
| 503 | service_unavailable | SeaLink proxy or LiteLLM tier temporarily unavailable. | Check the status page. Most issues clear within minutes. |
| 504 | gateway_timeout | SeaLink couldn't reach upstream within timeout. | Retry. If repeated, switch to another model in the same tier. |