TensorLoop

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.

CodeHTTPMeaningFix
unauthorized401No active sessionSign in again.
invalid_body400Validation failedThe detail field names the first failing constraint.
alias_taken409You already have a key with this aliasPick a new alias.
plan_limit_keys403Hit max keys for your planRevoke an unused key, or upgrade to pro.
plan_limit_budget403Requested budget exceeds plan capLower the budget, or upgrade.
plan_limit_rpm403Requested RPM exceeds plan capLower the rate, or upgrade.
plan_limit_model403Requested a model not on your planPick an allowed model. detail names the offending model.
rate_limited429Too many key-mint attempts in one hourWait an hour.
litellm_failed502Upstream proxy returned a non-2xxOften transient; retry shortly.
not_found404The resource doesn't exist for your accountCheck the alias spelling.
internal500Unexpected server errorIf it persists, contact support.

Inference API errors

These come from litellm.tensorloop.tech and follow the OpenAI shape.

HTTPCommon causeFix
401Missing, malformed, or revoked keyVerify the Authorization: Bearer ... header.
403Key's model allowlist doesn't include the requested modelMint a new key with that model included.
404Unknown model IDPick a model from /v1/models.
429Hit RPM cap or budget capBack off and retry; or wait for the budget window to roll over.
500Upstream model errorRetry once; if it persists, the model may be unavailable.
502 / 503Proxy or upstream model is downRetry 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.

On this page