Fouten

Elke foutcode die deze API kan teruggeven, de HTTP-status die daarbij hoort, en wat je eraan kunt doen. De envelope heeft de OpenAI-vorm met één namespaced toevoeging.

De envelope

error.message is geschreven voor iemand die een log leest, error.type benoemt de klasse van de fout, en error.code is de stabiele identificatie om op te vertakken — berichttekst is geen contract. Waar de API gestructureerde details heeft (welk beleid, welk endpoint, welk model) komen die in error.llmeu en vervangen nooit de drie standaardvelden.

{
  "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 volgt status

De onderstaande mapping is degene die de API toepast, weergegeven uit dezelfde tabel die de antwoorden opbouwt.

HTTP type
400invalid_request_error
401authentication_error
402insufficient_quota
403permission_error
404not_found_error
409conflict_error
413invalid_request_error
422invalid_request_error
429rate_limit_error
500api_error
501api_error
502api_error
503api_error

Codes

Elke code die een client kan bereiken. Een test doorloopt de API-broncode en faalt wanneer deze tabel en de code in beide richtingen van elkaar afwijken, dus een code kan hier niet worden verzonnen of daar worden toegevoegd zonder gedocumenteerd te zijn.

HTTP code Wat het betekent, en wat te doen
400 invalid_request De request body heeft de validatie niet doorstaan.
400 invalid_json De body was geen geldige JSON.
400 invalid_llmeu Het llmeu-object was geen object, of bevatte een onbekend veld.
400 invalid_residency De opgevraagde residency is niet een van de vier hostingklassen.
400 invalid_data_class De opgevraagde data_class is niet een van de vier klassen.
400 invalid_retention De opgevraagde retention is niet zero, 24h, 7d of 30d.
400 invalid_max_tokens max_tokens was geen positief geheel getal.
400 invalid_stream stream was geen boolean.
400 invalid_stop stop was geen string en ook geen array van strings.
400 invalid_role Een bericht bevatte een rol buiten system, user, assistant en tool.
400 invalid_tools tools of tool_choice was misvormd.
400 missing_model Het veld model is vereist.
400 missing_messages messages is vereist en mag niet leeg zijn.
400 missing_input input is vereist voor embeddings.
400 missing_name name is vereist.
401 invalid_api_key De sleutel ontbreekt, is onbekend, ingetrokken of verlopen.
402 budget_exceeded Het dagbudget van de organisatie is opgebruikt. Verhoog max_usd_per_day of wacht tot het venster opnieuw begint.
403 api_key_required Het verzoek gebruikte een consolesessie. Maak een API-sleutel aan en stuur die in plaats daarvan.
403 insufficient_scope De sleutel is geldig maar mist de scope die dit endpoint vereist.
403 no_organization De credential is niet aan een organisatie gekoppeld.
403 model_denied Het beleid van de organisatie weigert dit model of zijn provider.
403 policy_violation Het verzoek schendt een regel van het organisatiebeleid.
403 retention_exceeds_policy De opgevraagde retention is langer dan het beleid toestaat. Dit wordt vóór al het andere over het verzoek gecontroleerd.
403 data_class_not_allowed De data_class van het verzoek is niet een die het beleid toestaat.
404 model_not_found Geen dergelijk model voor deze organisatie.
404 hosted_unavailable Het model staat in de catalogus maar wordt niet gehost op LLM EU, dus het kan niet worden aangeroepen.
404 not_found De route bestaat, maar het object niet.
404 unknown_route Er is geen route gekoppeld aan dit pad. Elk OpenAI-endpoint dat niet onder Eindpunten staat, antwoordt hiermee.
404 policy_not_found De policy_id in llmeu hoort niet bij deze organisatie.
409 no_endpoint_for_policy Niets voldoet aan het beleid en de residency samen, en geen van beide wordt stilzwijgend versoepeld.
409 not_a_text_model Het genoemde model kan geen tekst genereren: het is een spraakherkennings-, embedding- of rerankermodel.
409 conflict Het verzoek is in conflict met de huidige staat van het object.
413 request_too_large De body overschreed de groottelimiet van het eindpunt.
429 rate_limit_exceeded Een limiet uit de snelheidslimiettabel is bereikt. Het bericht vermeldt het resetmoment van het venster.
500 internal_error Een onverwachte fout aan onze kant.
501 not_implemented Het eindpunt wordt bewust niet aangeboden, of de gevraagde functionaliteit bestaat niet in deze deployment.
501 retention_not_implemented Het beleid staat een bewaartermijn anders dan nul toe en alleen nul is geïmplementeerd, dus het verzoek wordt geweigerd in plaats van opgeslagen.
501 unsupported_n n groter dan 1 wordt niet ondersteund.
502 upstream_error Geen enkel eindpunt kon het verzoek na failover bedienen. De trace legt elke poging vast.
502 stream_failed De stream is mislukt nadat deze al was gestart.

no_endpoint_for_policy is het product dat werkt

Een 409 met deze code betekent dat het beleid en het verzoek samen geen endpoint toelaten, en dat de router weigerde een van beide stilzwijgend te versoepelen. Het is niet tijdelijk: opnieuw proberen zonder het verzoek, het beleid of de residency te wijzigen mislukt op dezelfde manier. De fout bevat de opgevraagde residency, en de trace legt vast waarom elk endpoint is afgewezen.

Fouten in een stream

Een streamingverzoek dat mislukt nadat de headers zijn verzonden, schrijft de fout als een laatste SSE-frame en daarna de terminator, zodat een client die het formaat volgt een fout ziet in plaats van een afgekapt succes.

data: {"error":{"message":"No endpoint could start the stream.","type":"api_error","code":"upstream_error"}}

data: [DONE]