Errors
Every error code TensorLoop and its upstream proxy can return, with what to do about each one.
Error shapes
The dashboard's management API (under tensorloop.tech/api/*) returns JSON errors like:
{ "error": "plan_limit_keys", "detail": "optional context" }The upstream inference proxy at litellm.tensorloop.tech returns standard OpenAI-shaped errors:
{ "error": { "type": "...", "message": "..." } }Management API codes
These come from key management and model-list endpoints.
| Code | HTTP | Meaning | Fix |
|---|---|---|---|
unauthorized | 401 | No active session | Sign in again. |
invalid_body | 400 | Validation failed | The detail field names the first failing constraint. |
alias_taken | 409 | You already have a key with this alias | Pick a new alias. |
plan_limit_keys | 403 | Hit max keys for your plan | Revoke an unused key, or upgrade to pro. |
plan_limit_budget | 403 | Requested budget exceeds plan cap | Lower the budget, or upgrade. |
plan_limit_rpm | 403 | Requested RPM exceeds plan cap | Lower the rate, or upgrade. |
plan_limit_model | 403 | Requested a model not on your plan | Pick an allowed model. detail names the offending model. |
rate_limited | 429 | Too many key-mint attempts in one hour | Wait an hour. |
litellm_failed | 502 | Upstream proxy returned a non-2xx | Often transient; retry shortly. |
not_found | 404 | The resource doesn't exist for your account | Check the alias spelling. |
internal | 500 | Unexpected server error | If it persists, contact support. |
Inference API errors
These come from litellm.tensorloop.tech and follow the OpenAI shape.
| HTTP | Common cause | Fix |
|---|---|---|
401 | Missing, malformed, or revoked key | Verify the Authorization: Bearer ... header. |
403 | Key's model allowlist doesn't include the requested model | Mint a new key with that model included. |
404 | Unknown model ID | Pick a model from /v1/models. |
429 | Hit RPM cap or budget cap | Back off and retry; or wait for the budget window to roll over. |
500 | Upstream model error | Retry once; if it persists, the model may be unavailable. |
502 / 503 | Proxy or upstream model is down | Retry with exponential backoff. |
Retry strategy
For 429 and 5xx, use exponential backoff with jitter — start at 1 second, double up to 30 seconds, with up to 6 retries. For 4xx other than 429, treat as permanent and fix the request rather than retrying.