Fejl
Fejl deler én konvolut (se oversigten). Forgren på code, log meta.request_id, og behandl message som engelsk tekst til mennesker.
Klientfejl
Sektion kaldt “Klientfejl”| Kode | Status | Betydning og hvad du skal gøre |
|---|---|---|
validation_failed |
400 | Et felt bestod ikke valideringen. field navngiver det; details forklarer. Ret feltet. |
bad_request |
400 | Anmodningen kunne slet ikke læses: forkert formateret JSON, en ødelagt Content-Encoding-strøm, en afbrudt body. Der er intet felt at rette; tjek transporten. |
validation_error |
400 | X-Account-Id blev sendt til et endpoint, der forbyder den (/auth/login, /auth/refresh, /auth/swap-company, /auth/logout). |
cursor_expired |
400 | Pagineringscursoren er ældre end 24 timer. Start listningen forfra. |
unauthenticated |
401 | Manglende eller ugyldigt token. Opdater sessionen, eller tjek nøglen. |
invalid_signature |
401 | En webhooksignatur kunne ikke verificeres. Se Webhooks. |
forbidden |
403 | Tokenet er gyldigt, men mangler tilladelsen. |
account_context_mismatch |
403 | X-Account-Id matcher ikke tokenets konto. Klientens opfattelse af den aktuelle virksomhed er skredet; læs den igen fra sessionen. |
not_found |
404 | Ressourcen findes ikke eller tilhører en anden konto eller et andet websted. API’et skelner aldrig mellem de to. |
conflict |
409 | Tilstandskonflikt: optimistisk lås, entydighedsbegrænsning eller en handling, der ikke er tilladt i den aktuelle tilstand (for eksempel at skrive til en flettet samtale). |
idempotency_key_conflict |
409 | Idempotency-Key blev genbrugt med en anden body. |
payload_too_large |
413 | Body overskrider grænsen for denne endpoint-familie. |
unsupported_media_type |
415 | Forkert Content-Type. |
unprocessable |
422 | Gyldig JSON, men en forretningsregel afviste den (for eksempel et bookingtidspunkt uden for åbningstiden). |
storage_quota_exceeded |
422 | Kontoen har nået sin plans lagergrænse. details indeholder used_bytes, quota_bytes og requested_bytes; frigør plads, eller opgradér. |
rate_limited |
429 | Sæt tempoet ned. Overhold Retry-After og details.retry_after_seconds. |
Serverfejl
Sektion kaldt “Serverfejl”| Kode | Status | Betydning og hvad du skal gøre |
|---|---|---|
internal_error |
500 | Uventet fejl. Prøv igen én gang, og kontakt derefter support med request_id. |
upstream_unavailable |
502 | Gatewayen kunne slet ikke nå tjenesten. Et kort genforsøg lykkes som regel. |
service_unavailable |
503 | Planlagt vedligeholdelse eller en åben circuit breaker. Prøv igen efter headeren Retry-After. |
ai_vendor_out_of_funds |
503 | Din AI-udbyder afviste kaldet af betalingsårsager (en 402 eller en kvote-429 fra leverandøren). Fyld op på leverandørkontoen; et genforsøg hjælper ikke. |
upstream_timeout |
504 | Tjenesten svarede ikke i tide. Prøv igen, når retry_after er til stede. |
Genforsøg
Sektion kaldt “Genforsøg”Gentag 429, 502, 503, 504 og netværksfejl med eksponentiel backoff, og send den samme Idempotency-Key ved genforsøget, så en skrivning aldrig udføres to gange. Gentag ikke andre 4xx end 429.