Aller au contenu
Toute la documentation

Référence

Erreurs

Les erreurs arrivent au format OpenAI, avec un code stable sur lequel vous pouvez vous appuyer et un message écrit pour les personnes. Un appel refusé ou échoué ne coûte rien.

Vérifié le 26 octobre 2026

La forme

Response
{
  "error": {
    "type": "rate_limit_error",
    "code": "daily_cap",
    "message": "This call needs up to $0.02 and the key has $0.01 left of its $2.00 daily cap, which resets at 00:00 UTC. …"
  }
}

Basez-vous sur code, pas sur message : les messages peuvent être reformulés, les codes restent. type suit celui d'OpenAI, pour que les SDK lèvent l'exception attendue.

Tous les codes

StatutCodeQuandSolution
401missing_keyAucune clé n’a été envoyée.Envoyez-la sous la forme Authorization: Bearer sk-nokeep-…. Créez-en une dans la console, ou essayez d’abord sk-nokeep-test.
401invalid_keyLa clé est erronée ou a été révoquée.Recopiez la clé depuis l’endroit où vous l’avez gardée ; la console n’en montre que les quatre derniers caractères. Si elle est perdue, créez-en une nouvelle.
403account_frozenLes fonctions payantes sont suspendues sur le compte auquel appartient la clé.Écrivez-nous depuis la page de contact.
429rate_limitedLa clé a envoyé plus de 120 requêtes en une minute (20 pour la clé de test, par adresse).Attendez les secondes indiquées par Retry-After, puis réessayez.
429daily_capL’appel pourrait dépasser le plafond quotidien de la clé.Relevez le plafond dans la console, baissez max_tokens ou attendez 00:00 UTC (Retry-After indique combien de temps).
402insufficient_creditsLes crédits achetés du compte ne suffisent pas pour cet appel.Rechargez dès $5 dans la console, ou baissez max_tokens. Les crédits d’un forfait restent dans l’application.
400invalid_jsonLe corps n’est pas un objet JSON.Envoyez Content-Type: application/json et un objet JSON.
413too_largeLa requête dépasse 12 Mo.Envoyez les images sous forme de liens plutôt qu’en data URLs, ou envoyez-en moins à la fois.
404model_not_foundL’id du modèle ne fait pas partie des nôtres.GET /v1/models liste les ids. Vérifiez qu’il n’y a pas de faute de frappe ni de -uncensored manquant.
400invalid_messagesmessages est absent ou vide, trop long, contient un rôle inconnu, ou un message d’outil n’a pas de tool_call_id.Envoyez de 1 à 2 000 messages, chacun avec le rôle system, developer, user, assistant ou tool.
400unsupported_nn est supérieur à 1.Envoyez une requête par réponse souhaitée.
400invalid_reasoning_effortLe modèle n’accepte pas ce reasoning_effort.DeepSeek accepte none, low, high ou max. GLM accepte low ou high.
400unsupported_tool_choiceGLM a reçu une fonction nommée ou "required" comme tool_choice.Envoyez auto ou none à GLM ; il choisit lui-même ses outils. DeepSeek accepte toutes les formes.
400unsupported_inputUne partie du contenu est d’un type que le modèle ne sait pas lire.Envoyez les images à DeepSeek ; GLM ne lit que du texte.
400too_many_imagesPlus de dix images dans une requête.Envoyez-en dix au maximum.
422hard_limitLa requête franchit l’une des limites strictes des conditions.Rien n’a été facturé. Retirez le message de l’historique que vous renvoyez, sinon l’appel suivant s’arrêtera aussi.
400rejectedLe modèle n’a pas pu accepter la requête telle qu’envoyée.Comparez les paramètres à la liste du modèle dans Modèles. Rien n’a été facturé.
503busyLe modèle est occupé.Réessayez après les secondes de Retry-After. Rien n’a été facturé.
503model_unavailableLe modèle est hors ligne de notre côté.Utilisez l’autre modèle pour l’instant ; la page d’état indique quand il revient.
502upstream_errorLe modèle a échoué avant d’écrire un mot.Réessayez dans un instant. Rien n’a été facturé.
404not_foundLa route n’existe pas.L’API sert GET /v1/models, GET /v1/models/{id}, GET /v1/status et POST /v1/chat/completions.
404api_closedL’API est désactivée.Réessayez plus tard.
Dans un streamCodeQuandSolution
—stream_cutLe modèle s’est arrêté avant la fin, en plein stream.Ce qu’il a écrit est facturé, rien de plus. Réessayez pour obtenir la suite, ou reprenez à partir de ce qui est arrivé.

Lesquelles relancer

  • Relancez 429 rate_limited, 503 busy et 502 upstream_error, après les secondes indiquées par Retry-After lorsqu'il y en a.
  • Ne relancez pas les 400, 401, 402, 404 ni 422 : la même requête reçoit la même réponse.
  • Un 429 daily_cap attend 00:00 UTC. Augmentez plutôt le plafond.