Fouten

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

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 identifier 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 ze 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 vanuit dezelfde tabel die zijn responses 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 het in beide richtingen oneens zijn, dus een code kan hier niet worden verzonnen of daar worden toegevoegd zonder gedocumenteerd te zijn.

HTTP code Wat het betekent, en wat u moet doen
400 invalid_request De requestbody 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 gevraagde residentie is niet een van de vier hostingklassen.
400 invalid_data_class De gevraagde data_class is niet een van de vier klassen.
400 invalid_retention De gevraagde retentie 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 had een rol buiten system, user, assistant en tool.
400 invalid_tools tools of tool_choice was misvormd.
400 missing_model Het veld model is verplicht.
400 missing_messages messages is verplicht en mag niet leeg zijn.
400 missing_input input is verplicht voor embeddings.
400 missing_name name is verplicht.
401 invalid_api_key De sleutel ontbreekt, is onbekend, ingetrokken of verlopen.
402 budget_exceeded Het dagbudget van de organisatie is verbruikt. 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 mee.
403 insufficient_scope De sleutel is geldig, maar mist de scope die dit endpoint vereist.
403 no_organization De referentie is niet aan een organisatie gekoppeld.
403 model_denied Het beleid van de organisatie weigert dit model of de aanbieder ervan.
403 policy_violation Het verzoek schendt een regel van het organisatiebeleid.
403 retention_exceeds_policy De gevraagde retentie is langer dan het beleid toestaat. Dit wordt gecontroleerd vóór al het andere aan het verzoek.
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 en kan dus niet worden aangeroepen.
404 not_found De route bestaat, maar het object niet.
404 unknown_route Op dit pad is geen route gekoppeld. Elk OpenAI-endpoint dat niet onder Endpoints staat, antwoordt hiermee.
404 policy_not_found De policy_id in llmeu hoort niet bij deze organisatie.
409 no_endpoint_for_policy Niets voldoet tegelijk aan het beleid en de residentie, 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 conflicteert met de huidige staat van het object.
413 request_too_large De body overschreed de groottelimiet van het endpoint.
429 rate_limit_exceeded Een limiet uit de limiettabel is bereikt. Het bericht noemt het tijdstip waarop het venster opnieuw begint.
500 internal_error Een onverwachte fout aan onze kant.
501 not_implemented Het endpoint wordt bewust niet aangeboden, of de gevraagde mogelijkheid bestaat niet op deze deployment.
501 retention_not_implemented Het beleid staat een retentie 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 Na failover kon geen endpoint het verzoek bedienen. De trace legt elke poging vast.
502 stream_failed De stream is mislukt nadat deze al was begonnen.

no_endpoint_for_policy is het product dat werkt

Een 409 met deze code betekent dat het beleid en het verzoek samen geen enkel 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 residentie te wijzigen, mislukt op dezelfde manier. De fout bevat de gevraagde residentie, en de trace registreert 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 dan 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]