Fel
Varje felkod som det här API:et kan svara med, HTTP-statusen som bär den och vad du kan göra åt den. Svarsformatet har OpenAI-form med ett tillägg i en egen namnrymd.
Svarsformatet
error.message är skrivet för en person som läser en logg, error.type anger felklassen och error.code är den stabila identifierare du kan förgrena på — meddelandetexten är inte ett kontrakt. Där API:et har strukturerad information (vilken policy, vilken slutpunkt, vilken modell) kommer den i error.llmeu och ersätter aldrig de tre standardfälten.
{
"error": {
"message": "No endpoint satisfies residency eu-owned. Residency is never relaxed silently.",
"type": "conflict_error",
"code": "no_endpoint_for_policy",
"llmeu": { "requested": "llmeu-auto" }
}
}
type följer status
Mappningen nedan är den som API:et tillämpar, genererad från samma tabell som bygger dess svar.
| HTTP | type |
|---|---|
| 400 | invalid_request_error |
| 401 | authentication_error |
| 402 | insufficient_quota |
| 403 | permission_error |
| 404 | not_found_error |
| 409 | conflict_error |
| 413 | invalid_request_error |
| 422 | invalid_request_error |
| 429 | rate_limit_error |
| 500 | api_error |
| 501 | api_error |
| 502 | api_error |
| 503 | api_error |
Koder
Varje kod som kan nå en klient. Ett test går igenom API:ets källkod och misslyckas när den här tabellen och koden inte stämmer överens åt något håll, så en kod kan inte hittas på här eller läggas till där utan att dokumenteras.
| HTTP | code | Vad den betyder, och vad du kan göra |
|---|---|---|
| 400 | invalid_request | Begärans innehåll klarade inte valideringen. |
| 400 | invalid_json | Innehållet var inte giltig JSON. |
| 400 | invalid_llmeu | Objektet llmeu var inte ett objekt, eller innehöll ett okänt fält. |
| 400 | invalid_residency | Den begärda datahemvisten är inte en av de fyra driftklasserna. |
| 400 | invalid_data_class | Den begärda data_class är inte en av de fyra klasserna. |
| 400 | invalid_retention | Den begärda lagringstiden är inte zero, 24h, 7d eller 30d. |
| 400 | invalid_max_tokens | max_tokens var inte ett positivt heltal. |
| 400 | invalid_stream | stream var inte ett booleskt värde. |
| 400 | invalid_stop | stop var varken en sträng eller en array av strängar. |
| 400 | invalid_role | Ett meddelande hade en roll utanför system, user, assistant och tool. |
| 400 | invalid_tools | tools eller tool_choice var felformat. |
| 400 | missing_model | model-fältet är obligatoriskt. |
| 400 | missing_messages | messages krävs och får inte vara tomt. |
| 400 | missing_input | input krävs för embeddings. |
| 400 | missing_name | name krävs. |
| 401 | invalid_api_key | Nyckeln saknas, är okänd, återkallad eller har gått ut. |
| 402 | budget_exceeded | Organisationens dagliga budget är förbrukad. Höj max_usd_per_day eller vänta tills fönstret rullar om. |
| 403 | api_key_required | Begäran använde en konsollsession. Skapa en API-nyckel och skicka den i stället. |
| 403 | insufficient_scope | Nyckeln är giltig men saknar den behörighet som denna slutpunkt kräver. |
| 403 | no_organization | Autentiseringsuppgiften är inte kopplad till en organisation. |
| 403 | model_denied | Organisationens policy nekar denna modell eller dess leverantör. |
| 403 | policy_violation | Begäran bryter mot en regel i organisationens policy. |
| 403 | retention_exceeds_policy | Den begärda retentionen är längre än policyn tillåter. Detta kontrolleras före allt annat i begäran. |
| 403 | data_class_not_allowed | Begärans data_class är inte en som policyn tillåter. |
| 404 | model_not_found | Ingen sådan modell för denna organisation. |
| 404 | hosted_unavailable | Modellen finns i katalogen men är inte hostad på LLM EU, så den kan inte anropas. |
| 404 | not_found | Rutten finns men objektet gör det inte. |
| 404 | unknown_route | Ingen rutt är monterad på denna sökväg. Varje OpenAI-slutpunkt som inte listas under Slutpunkter svarar detta. |
| 404 | policy_not_found | policy_id i llmeu tillhör inte denna organisation. |
| 409 | no_endpoint_for_policy | Ingenting uppfyller policyn och residensen tillsammans, och ingen av dem mildras tyst. |
| 409 | not_a_text_model | Den angivna modellen kan inte generera text: den är en taligenkännings-, embedding- eller reranker-modell. |
| 409 | conflict | Begäran står i konflikt med objektets nuvarande tillstånd. |
| 413 | request_too_large | Kroppen överskred slutpunktens storleksgräns. |
| 429 | rate_limit_exceeded | En gräns från rate-limit-tabellen uppnåddes. Meddelandet anger tiden för fönstrets återställning. |
| 500 | internal_error | Ett oväntat fel på vår sida. |
| 501 | not_implemented | Slutpunkten erbjuds medvetet inte, eller så finns inte den begärda funktionen i denna driftsättning. |
| 501 | retention_not_implemented | Policyn tillåter en annan retention än noll och endast noll är implementerad, så begäran avvisas i stället för att lagras. |
| 501 | unsupported_n | n större än 1 stöds inte. |
| 502 | upstream_error | Ingen slutpunkt kunde betjäna begäran efter failover. Spårningen registrerar varje försök. |
| 502 | stream_failed | Strömmen misslyckades efter att den redan hade startat. |
no_endpoint_for_policy är produkten som fungerar
En 409 med den här koden betyder att policyn och begäran tillsammans inte tillåter någon slutpunkt, och att routern vägrade lätta upp någon av dem i tysthet. Det är inte tillfälligt: att försöka igen utan att ändra begäran, policyn eller datahemvisten misslyckas på samma sätt. Felet innehåller den begärda datahemvisten, och spårningen registrerar varför varje slutpunkt avvisades.
Fel inuti en ström
En strömmande begäran som misslyckas efter att huvudena skickats skriver felet som en sista SSE-ram och sedan avslutaren, så en klient som följer formatet ser ett fel i stället för en avkortad framgång.
data: {"error":{"message":"No endpoint could start the stream.","type":"api_error","code":"upstream_error"}}
data: [DONE]