Fel
Fel delar ett gemensamt omslag (se översikten). Förgrena på code, logga meta.request_id och behandla message som engelsk text avsedd för människor.
Klientfel
Section titled “Klientfel”| Kod | Status | Betydelse och vad du ska göra |
|---|---|---|
validation_failed |
400 | Ett fält klarade inte valideringen. field namnger det; details förklarar. Rätta fältet. |
bad_request |
400 | Förfrågan kunde inte läsas alls: felformaterad JSON, en trasig Content-Encoding-ström, en avbruten body. Det finns inget fält att rätta; kontrollera transporten. |
validation_error |
400 | X-Account-Id skickades till en endpoint som förbjuder den (/auth/login, /auth/refresh, /auth/swap-company, /auth/logout). |
cursor_expired |
400 | Pagineringsmarkören är äldre än 24 timmar. Börja om listningen. |
unauthenticated |
401 | Token saknas eller är ogiltig. Förnya sessionen eller kontrollera nyckeln. |
invalid_signature |
401 | En webhook-signatur kunde inte verifieras. Se Webhooks. |
forbidden |
403 | Tokenen är giltig men saknar behörigheten. |
account_context_mismatch |
403 | X-Account-Id matchar inte tokenens konto. Klientens uppfattning om det aktuella företaget har glidit isär; läs om den från sessionen. |
not_found |
404 | Resursen finns inte eller tillhör ett annat konto eller en annan webbplats. API:et skiljer aldrig mellan de två. |
conflict |
409 | Tillståndskonflikt: optimistisk låsning, unikhetsvillkor eller en åtgärd som inte tillåts i det aktuella tillståndet (till exempel att skriva till en sammanslagen konversation). |
idempotency_key_conflict |
409 | Idempotency-Key återanvändes med en annan body. |
payload_too_large |
413 | Bodyn överskrider gränsen för den här endpoint-familjen. |
unsupported_media_type |
415 | Fel Content-Type. |
unprocessable |
422 | Giltig JSON, men en affärsregel avvisade den (till exempel en bokningstid utanför arbetstiderna). |
storage_quota_exceeded |
422 | Kontot har nått planens lagringsgräns. details innehåller used_bytes, quota_bytes och requested_bytes; frigör utrymme eller uppgradera. |
rate_limited |
429 | Sakta ner. Respektera Retry-After och details.retry_after_seconds. |
Serverfel
Section titled “Serverfel”| Kod | Status | Betydelse och vad du ska göra |
|---|---|---|
internal_error |
500 | Oväntat fel. Försök igen en gång och kontakta sedan supporten med request_id. |
upstream_unavailable |
502 | Gatewayen kunde inte nå tjänsten alls. Ett kort nytt försök lyckas oftast. |
service_unavailable |
503 | Planerat underhåll eller en öppen kretsbrytare. Försök igen efter tiden i headern Retry-After. |
ai_vendor_out_of_funds |
503 | Din AI-leverantör avvisade anropet av faktureringsskäl (en 402 eller en kvot-429 från leverantören). Fyll på leverantörskontot; ett nytt försök hjälper inte. |
upstream_timeout |
504 | Tjänsten svarade inte i tid. Försök igen när retry_after finns. |
Nya försök
Section titled “Nya försök”Gör nya försök vid 429, 502, 503, 504 och nätverksfel med exponentiell backoff, och skicka samma Idempotency-Key i det nya försöket så att en skrivning aldrig tillämpas två gånger. Gör inga nya försök vid andra 4xx än 429.