TESSEN Platform
Documentation
Docs/API reference
API REFERENCE

Errors

The error shapes, every status and code the documented endpoints return, and how to handle each.

Application errors use one envelope with a stable code you can branch on and a message written for a person:

ENVELOPE
{ "error": { "code": "model_not_found", "message": "Model 'gpt-4o' is not in the model registry" } }

Request validation (422) and a few input checks (400) use the framework's shape, { "detail": ... }. Always read the HTTP status first, then error.code if present.

Status and codes

Statuserror.codeMeaningRetry?
400model_not_foundUnknown model id, or a family your account cannot call.No. Fix the id or request access.
400—Input check, e.g. more than 64 embeddings inputs. Body { "detail": "..." }.No.
401authentication_requiredNo Authorization header.No. Send the key.
401invalid_api_keyUnknown, malformed or revoked key.No. Create a new key.
402insufficient_creditsThe wallet cannot cover the request. required_usd, available_usd, allowed_actions. Nothing was charged.After funding.
403zero_entitlement_requiredNot enrolled in ZERO Alpha.No.
404capability_unavailableThe capability is not enabled (image generation).No.
413request_too_largemax_tokens is above the model's limit.No. Lower it.
422—Invalid body. { "detail": [ ... ] } lists each problem with its location.No. Fix the body.
502—Embeddings are temporarily unavailable.Yes, with backoff.
503zero_capacity_unavailableA ZERO limit closed. error.limit names it and error.reset_at says when it clears.After Retry-After.
503zero_program_disabledZERO is switched off by Tessen.Not until Tessen re-enables it.
503 ZERO_CAPACITY_UNAVAILABLE
{  "error": {    "code": "zero_capacity_unavailable",    "message": "You have used today's free ZERO Alpha request allowance.",    "capacity_state": "exhausted",    "limit": "requests",    "owner": "you",    "actions": ["wait", "add_credits", "learn_tessen_node"],    "reset_at": "2026-10-30T00:00:00+00:00"  }}

Handle an error in code

BRANCH ON STATUS AND CODE
curl -i https://api.tessen.ai/v1/chat/completions \  -H "Authorization: Bearer $TESSEN_API_KEY" \  -H "Content-Type: application/json" \  -d '{"model": "not-a-model", "messages": [{"role": "user", "content": "hi"}]}'

Streaming

A refusal on a streamed request arrives as an error frame inside HTTP 200, with type where a non-streaming response has code. See Streaming.

Search documentation

Titles, headings and guides↑ ↓ navigate · Enter open
Errors · Tessen Docs