Erreurs
Les erreurs reviennent en JSON, au format d'OpenAI : un objet error avec un message lisible et un type stable sur lequel votre code peut s'appuyer.
Le format
Appuyez-vous sur le type : c'est la partie stable. Le message s'adresse à qui lit les journaux, et reste en anglais quelle que soit la langue de la documentation.
{
"error": {
"message": "Insufficient credit balance. Add credit to your account to continue.",
"type": "insufficient_credit"
}
}Statuts et types
| Statut | type | Signification |
|---|---|---|
| 400 | invalid_ | Le corps n'est pas du JSON valide, ou un champ requis manque : model, input pour les embeddings, prompt pour les images — ou un paramètre d'image est hors limites (Images). |
| 401 | invalid_ | Pas de clé, une clé malformée, ou une clé révoquée. |
| 402 | insufficient_ | Votre crédit est à zéro ou en dessous. Rechargez pour continuer. |
| 404 | model_ | Identifiant inconnu, modèle qu'Evanesca ne sert pas, ou modèle de la mauvaise famille pour cet endpoint. GET /models liste les identifiants valides. |
| 502 | upstream_ | L'opérateur est injoignable, a renvoyé une réponse illisible, ou a refusé le compte d'Evanesca elle-même. Votre clé n'est pas en cause : réessayez, et écrivez-nous si ça dure. |
| 503 | model_ | Le modèle est momentanément indisponible : mis en pause, ou son opérateur n'est pas joignable pour Evanesca. Réessayez plus tard, ou choisissez un autre modèle dans GET /models. |
Erreurs d'opérateur et relances
Les autres erreurs d'opérateur — limite de débit, modèle surchargé, paramètre refusé — vous parviennent avec le statut et le corps de l'opérateur, comme si vous l'aviez appelé directement, et avec Retry-After quand l'opérateur en envoie un. Les SDK officiels d'OpenAI réessaient d'eux-mêmes les 429 et les 5xx ; quand l'opérateur a refusé le compte d'Evanesca, le 502 porte x-should-retry: false pour qu'ils ne relancent pas un appel voué à l'échec.
Une erreur d'opérateur ne bascule jamais l'appel ailleurs : aucun modèle n'a de secours hors d'Europe, donc vous recevez l'erreur plutôt qu'une réponse venue d'un autre lieu.
Requêtes d'image refusées
Une requête d'image hors limites est refusée en 400 invalid_request avant tout appel, et son champ param dit lequel — un prompt trop long, n hors de 1 à 5, une taille hors liste… Elle ne coûte rien. Un modèle envoyé au mauvais endpoint d'image reçoit un 404 model_not_found (toutes les limites).
Une réponse vide n'est pas une erreur
Avec un max_tokens bas, un modèle de raisonnement peut dépenser tout son budget à réfléchir : la réponse revient sans contenu, avec finish_reason "length". Elle paraît vide, mais rien n'a échoué. Omettez max_tokens, ou laissez au moins 1 000 tokens environ (modèles de raisonnement).
Par MCP
Les erreurs de protocole reviennent en erreurs JSON-RPC. Un outil qui échoue — opérateur en panne, crédit à zéro, modèle qu'Evanesca ne sert pas (le model_not_found de l'API) — renvoie un résultat marqué isError, que l'agent peut lire avant de décider quoi faire. Un jeton OAuth expiré ou révoqué reçoit un HTTP 401 avec un en-tête WWW-Authenticate ; un outil appelé sans le droit qu'il demande renvoie un résultat d'erreur qui nomme ce droit (serveur MCP).