Fel
Förstå Webways felsvar, statuskoder och hur du gör säkra återförsök.
Fel använder ett litet JSON-omslag som OpenAI-kompatibla SDK:er kan tolka:
{
"error": {
"message": "insufficient credit",
"type": "insufficient_quota",
"code": "insufficient_quota"
}
}
type är det övergripande värde som klientbibliotek växlar på. code är mer exakt
och skiljer sig från type endast när det är en leverantör som har fallerat.
Omslaget följer slutpunkten. /v1/messages returnerar Anthropics format, så
Anthropic-SDK:er och Claude Code kan tolka det och använda sin egen logik för
återförsök utan specialhantering för denna gateway:
{
"type": "error",
"error": {
"type": "overloaded_error",
"message": "the provider is over capacity, retry shortly (request 4f2ab910)",
"code": "overloaded"
}
}
Statuskoder
| Status | Betydelse | Försöka igen? |
|---|---|---|
400 |
Ogiltig JSON, ogiltiga fält eller parametrar | Nej, korrigera begäran |
401 |
API-nyckeln saknas, är ogiltig, har gått ut eller har återkallats | Nej, byt ut API-nyckeln |
402 |
Ditt saldo räcker inte för begäran | Efter att du har fyllt på saldot |
403 |
Modellen kräver din egen API-nyckel för leverantören | Nej, lägg till en i kontrollpanelen |
404 |
Modellen eller slutpunkten hittades inte | Nej, kontrollera ID:t och sökvägen |
413 |
Begärans innehåll är för stort | Nej, minska datamängden |
429 |
Frekvensgränsen har nåtts | Ja, vänta och försök igen |
502 / 503 |
Leverantören är inte tillgänglig | Ja, använd backoff |
504 |
Leverantörens tidsgräns överskreds | Ja, använd backoff |
402 gäller alltid enbart ditt saldo. Ett faktureringsproblem mellan Webway och
en leverantör är ett 502-fel, eftersom det inte är något du kan åtgärda.
Leverantörsfel
När felet kommer från en leverantör och inte från din begäran anger code
vilket fel det var:
code |
Status | Betydelse | Försöka igen? |
|---|---|---|---|
model_unavailable |
502 |
Leverantören tillhandahåller inte den här modellen. Det är vårt ansvar att åtgärda | Nej |
context_length_exceeded |
400 |
Begäran är längre än modellens kontextfönster | Nej |
content_filtered |
400 |
Leverantörens säkerhetslager avvisade begäran | Nej |
invalid_request |
400 |
Leverantören avvisade begäran | Nej |
rate_limited |
429 |
Frekvensbegränsad hos leverantören | Ja |
overloaded |
503 |
Leverantören saknar ledig kapacitet | Ja |
timeout |
504 |
Leverantören svarade inte i tid | Ja |
transport_error |
502 |
Anslutningen till leverantören misslyckades | Ja |
upstream_error |
502 |
Oklassificerat. Utreds alltid | Kanske |
Feltext från leverantören skickas aldrig vidare. Uppströmstjänster beskriver fel med sin egen terminologi, ibland på ett annat språk, ofta med namn på infrastruktur som inte är din, och texten kan ändras utan förvarning. Varje fel klassificeras enligt uppsättningen ovan och skrivs om, så meddelandet du får är tillräckligt stabilt att basera loggning på.
Varje meddelande avslutas med ett Webway-begärande-ID. Uppge det i supportärenden: det är identifieraren som faktiskt går att slå upp.
Fel under strömning
En begäran kan misslyckas efter att svarshuvudena redan har skickats. Då går
statuskoden inte längre att ändra, så felet levereras som en händelse i strömmen
med samma protokoll som resten av den – event: error på /v1/messages, en
error-händelse på /v1/responses, ett error-segment på
/v1/chat/completions. code-värdena är desamma som i tabellen.
Betrakta en ström som avslutas utan sin avslutande händelse som ett fel, inte som ett kort svar.
Regler för återförsök
Försök endast igen vid 429 och tillfälliga 5xx-svar. Använd exponentiell
backoff med jitter, begränsa antalet försök och följ Retry-After när det finns.
Försök inte skicka om oförändrade 400-, 401-, 402-, 403-, 404- eller
413-begäranden. Samma begäran kommer att misslyckas igen.
Begäranden som avvisas innan leverantörens arbete börjar debiteras inte. En begäran som misslyckas efter att genereringen har börjat kan debiteras för de token som redan har producerats, även om du avbryter den mitt i strömningen.