Découvrez les codes d’erreur de l’API et leurs solutions.
Ce guide présente les codes d’erreur que vous pouvez rencontrer avec l’API et notre bibliothèque Python officielle. Chaque code d’erreur mentionné dans cette vue d’ensemble fait l’objet d’une section dédiée avec des conseils supplémentaires.
Erreurs de l’API
Code
Vue d’ensemble
400 - Argument service_tier non valide
Cause : L’offre demandée ou déterminée automatiquement n’est pas autorisée pour le projet. Solution : Définissez service_tier sur une offre autorisée pour le projet, ou mettez à jour les offres autorisées dans les paramètres du projet.
401 - Authentification non valide
Cause : Authentification non valide Solution : Vérifiez que vous utilisez la bonne clé API et que la requête est associée à la bonne organisation.
401 - Clé API fournie incorrecte
Cause : La clé API utilisée pour la requête est incorrecte. Solution : Vérifiez que la clé API utilisée est correcte, videz le cache de votre navigateur ou générez une nouvelle clé.
401 - Vous devez être membre d’une organisation pour utiliser l’API
Cause : Votre compte ne fait partie d’aucune organisation. Solution : Contactez-nous pour être ajouté à une nouvelle organisation ou demandez au responsable de votre organisation de vous inviter à rejoindre une organisation.
401 - Adresse IP non autorisée
Cause : L’adresse IP de votre requête ne figure pas dans la liste d’adresses IP autorisées configurée pour votre projet ou votre organisation. Solution : Envoyez la requête depuis la bonne adresse IP ou mettez à jour les paramètres de votre liste d’adresses IP autorisées.
403 - Pays, région ou territoire non pris en charge
Cause : Vous accédez à l’API depuis un pays, une région ou un territoire non pris en charge. Solution : Consultez cette page pour en savoir plus.
429 - Solde de crédits épuisé
Code :credit_balance_exhausted Cause : Votre organisation n’a plus de crédits prépayés. Solution :Ajoutez des crédits pour continuer à utiliser l’API.
429 - Limite de débit des requêtes atteinte
Cause : Vous envoyez des requêtes trop rapidement. Solution : Espacez vos requêtes et respectez le délai indiqué par l’en-tête Retry-After lorsqu’il est présent. Consultez le guide des limites de débit.
429 - Ralentissez
Type :rate_limit_error Code :slow_down Cause : Le débit de vos requêtes a augmenté trop rapidement. Solution : Respectez le délai indiqué par l’en-tête Retry-After lorsqu’il est présent, réduisez le débit de vos requêtes, puis augmentez-le progressivement.
429 - Limite de dépenses de l’organisation atteinte
Code :organization_spend_limit_exceeded Cause : Votre organisation a atteint sa limite de dépenses contraignante. Solution : Augmentez ou supprimez la limite de dépenses de votre organisation.
429 - Limite de dépenses du projet atteinte
Code :project_spend_limit_exceeded Cause : Votre projet a atteint sa limite de dépenses contraignante. Solution : Augmentez ou supprimez la limite de dépenses dans les paramètres de votre projet.
429 - Limite d’utilisation de l’organisation atteinte
Code :organization_usage_limit_exceeded Cause : Votre organisation a atteint la limite d’utilisation qui lui a été attribuée par OpenAI. Solution : Demandez une augmentation de votre limite d’utilisation approuvée ou contactez l’assistance.
500 - Le serveur a rencontré une erreur lors du traitement de votre requête
Cause : Problème sur nos serveurs. Solution : Patientez un court instant, puis renvoyez votre requête et contactez-nous si le problème persiste. Consultez la page d’état des services.
503 - Modèle temporairement surchargé
Type :service_unavailable_error Code :server_is_overloaded Cause : Le modèle demandé est temporairement surchargé. Solution : Respectez le délai indiqué par l’en-tête Retry-After lorsqu’il est présent, puis renvoyez votre requête.
Pour les erreurs liées à la facturation, examinez error.code afin d’en déterminer la cause précise. Le champ plus général error.type peut toujours avoir pour valeur insufficient_quota.
Renvoyer une requête après une erreur de facturation, de dépenses ou de quota ne rétablira pas l’accès à l’API. Mettez à jour les crédits ou les limites concernés avant d’envoyer une nouvelle requête.
previous_response_not_found : Impossible de résoudre previous_response_id à partir de l’état disponible. Réessayez avec le contexte d’entrée complet et previous_response_id défini sur null.
websocket_connection_limit_reached : La connexion a atteint la limite de 60 minutes. Ouvrez une nouvelle connexion WebSocket et poursuivez.
L’API renvoie le message "Invalid service_tier argument: The requested service tier is not allowed for this project." sous la forme d’une erreur invalid_request_error, avec error.param défini sur service_tier, lorsqu’une requête sélectionne une offre non autorisée pour le projet ou qu’une telle offre est déterminée automatiquement.
Les restrictions du projet s’appliquent aux offres default, flex et priority. L’offre fast est traitée comme l’offre priority. Les requêtes qui omettent service_tier ou le définissent sur auto peuvent également renvoyer cette erreur si l’offre déterminée automatiquement n’est pas autorisée. L’offre Scale n’est pas concernée par cette politique de projet.
Définissez service_tier sur une offre autorisée pour le projet.
Si la requête utilise auto ou omet service_tier, mettez à jour les paramètres du projet pour autoriser l’offre déterminée automatiquement.
Ce message d’erreur indique que vos identifiants d’authentification ne sont pas valides. Plusieurs raisons peuvent l’expliquer, notamment :
Vous utilisez une clé API révoquée.
Vous utilisez une clé API différente de celle attribuée à l’organisation ou au projet à l’origine de la requête.
Vous utilisez une clé API qui ne dispose pas des autorisations requises pour le point de terminaison que vous appelez.
Pour résoudre cette erreur, suivez ces étapes :
Vérifiez que vous utilisez la bonne clé API et le bon identifiant d’organisation dans l’en-tête de votre requête. Vous trouverez votre clé API et votre identifiant d’organisation dans les paramètres de votre compte. Vous pouvez aussi retrouver les clés propres à un projet dans les paramètres généraux en sélectionnant le projet souhaité.
Si vous avez un doute sur la validité de votre clé API, vous pouvez en générer une nouvelle. Veillez à remplacer l’ancienne clé API par la nouvelle dans vos requêtes et à suivre notre guide des bonnes pratiques.
Ce message d’erreur indique que la clé API utilisée dans votre requête est incorrecte. Plusieurs raisons peuvent l’expliquer, notamment :
Votre clé API contient une faute de frappe ou un espace superflu.
Vous utilisez une clé API qui appartient à une autre organisation ou à un autre projet.
Vous utilisez une clé API qui a été supprimée ou désactivée.
Une ancienne clé API révoquée est peut-être conservée dans le cache local.
Pour résoudre cette erreur, suivez ces étapes :
Essayez de vider le cache de votre navigateur et de supprimer ses cookies, puis réessayez.
Vérifiez que vous utilisez la bonne clé API dans l’en-tête de votre requête.
Si vous ne savez pas si votre clé API est correcte, vous pouvez en générer une nouvelle. Veillez à remplacer l’ancienne clé API dans votre code source et à suivre notre guide des bonnes pratiques.
Ce message d’erreur indique que votre compte ne fait partie d’aucune organisation. Plusieurs raisons peuvent l’expliquer, notamment :
Vous avez quitté votre précédente organisation ou en avez été retiré.
Vous avez quitté votre précédent projet ou en avez été retiré.
Votre organisation a été supprimée.
Pour résoudre cette erreur, suivez ces étapes :
Si vous avez quitté votre précédente organisation ou en avez été retiré, vous pouvez demander la création d’une nouvelle organisation ou vous faire inviter dans une organisation existante.
Pour demander la création d’une nouvelle organisation, contactez-nous via help.openai.com
Les propriétaires d’organisations existantes peuvent vous inviter à rejoindre leur organisation via la page Équipe ou créer un nouveau projet depuis la page Paramètres.
Si vous avez quitté un précédent projet ou en avez été retiré, vous pouvez demander au propriétaire de votre organisation ou du projet de vous y ajouter, ou créer un nouveau projet.
L’erreur credit_balance_exhausted indique que le solde de crédits prépayés de votre organisation est épuisé.
Ce message d’erreur indique que vous avez atteint la limite de débit qui vous est attribuée pour l’API. Cela signifie que vous avez envoyé trop de tokens ou de requêtes sur une courte période et dépassé le nombre de requêtes autorisé. Plusieurs raisons peuvent l’expliquer, notamment :
Vous utilisez une boucle ou un script qui envoie des requêtes fréquentes ou simultanées.
Vous partagez votre clé API avec d’autres utilisateurs ou applications.
Vous utilisez une offre gratuite dont la limite de débit est basse.
Vous avez atteint la limite définie pour votre projet
Pour résoudre cette erreur, suivez ces étapes :
Espacez vos requêtes et évitez les appels inutiles ou redondants.
Si un en-tête Retry-After est présent, attendez au moins le délai qu’il indique avant de réessayer. S’il est absent, utilisez un délai d’attente exponentiel avec une variation aléatoire et limitez le nombre de nouvelles tentatives. La prise en charge par le SDK des longs délais imposés par le serveur varie selon la version et la configuration. Pour en savoir plus, consultez notre guide des limites de débit.
Si votre organisation compte d’autres utilisateurs, sachez que les limites s’appliquent par organisation et non par utilisateur. Vérifiez également l’utilisation du reste de votre équipe, car elle est prise en compte dans cette limite.
Si vous utilisez une offre gratuite ou d’entrée de gamme, envisagez de passer à une offre facturée à l’usage avec une limite de débit plus élevée. Vous pouvez comparer les restrictions de chaque offre dans notre guide des limites de débit.
Contactez le propriétaire de votre organisation pour augmenter les limites de débit de votre projet
Une réponse 429 avec le type rate_limit_error et le code slow_down indique que le débit de vos requêtes a augmenté plus vite que le service ne peut le gérer sans risque. Cette erreur peut se produire même si votre trafic respecte ses limites de requêtes par minute et de tokens par minute.
En règle générale, dès que votre trafic atteint 1 million de tokens d’entrée par minute (TPM), ne l’augmentez pas de plus de 50 % toutes les 15 minutes. Le seuil exact à partir duquel la limite de montée en charge s’applique peut varier selon le modèle et les conditions de trafic.
Pour résoudre cette erreur :
Si un en-tête Retry-After est présent, attendez au moins le délai qu’il indique avant de réessayer. S’il est absent, augmentez le délai entre les tentatives et ajoutez un court délai aléatoire.
Réduisez le débit de vos requêtes, puis augmentez-le progressivement.
Maintenez un trafic régulier pour réduire le risque d’une nouvelle erreur slow_down.
Les clients Entreprise dont le trafic facturé à l’usage atteint régulièrement les limites de montée en charge peuvent envisager l’offre Scale pour bénéficier d’une capacité plus prévisible sur les modèles éligibles. Pour GPT-5.6 et les modèles ultérieurs, consultez Reserved Tier. Ces options de capacité ne remplacent pas les étapes de résolution ci-dessus : continuez à respecter Retry-After lorsqu’il est présent et augmentez le trafic progressivement.
L’erreur organization_spend_limit_exceeded indique que votre organisation a atteint sa limite de dépenses mensuelle bloquante. Cette limite s’applique au trafic API de tous les projets de l’organisation.
Pour rétablir l’accès à l’API, augmentez ou supprimez la limite dans les paramètres des limites de votre organisation. Sinon, l’accès sera rétabli après la réinitialisation de la limite mensuelle.
L’erreur project_spend_limit_exceeded indique que votre projet a atteint sa limite de dépenses mensuelle bloquante. Les autres projets peuvent continuer à fonctionner, sauf si leur propre limite ou celle de l’organisation est également atteinte.
Pour rétablir l’accès à l’API, augmentez ou supprimez la limite dans les paramètres de votre projet. Sinon, l’accès sera rétabli après la réinitialisation de la limite mensuelle.
L’erreur organization_usage_limit_exceeded indique que votre organisation a atteint la limite d’utilisation mensuelle qui lui est attribuée par OpenAI. Cette limite est distincte des limites de dépenses que vous configurez pour votre organisation et vos projets.
Une réponse 503 avec le type service_unavailable_error et le code server_is_overloaded indique que le modèle demandé ne dispose pas d’une capacité suffisante pour traiter votre requête pour le moment.
Si un en-tête Retry-After est présent, attendez au moins le délai qu’il indique avant de réessayer. S’il est absent, augmentez le délai entre les tentatives. Si l’erreur persiste, consultez la page d’état des services pour vérifier si un incident est en cours.
Types d’erreurs de la bibliothèque Python
Python lève RateLimitError pour les réponses 429 et InternalServerError pour les réponses 503. Si votre gestionnaire n’interceptait auparavant qu’une seule de ces classes pour les cas de limitation de débit et de surcharge, gérez les deux et examinez error.code. Une surcharge du service vidéo, par exemple, renvoie désormais 503 alors qu’elle renvoyait auparavant 429. Consultez les consignes de migration pour connaître les changements propres à chaque point de terminaison.
Type
Vue d’ensemble
APIConnectionError
Cause : Problème de connexion à nos services. Solution : Vérifiez vos paramètres réseau, la configuration de votre proxy, vos certificats SSL ou les règles de votre pare-feu.
APITimeoutError
Cause : Le délai d’attente de la requête a expiré. Solution : Patientez un court instant, puis réessayez votre requête. Contactez-nous si le problème persiste.
AuthenticationError
Cause : Votre clé API ou votre token était invalide, avait expiré ou avait été révoqué. Solution : Vérifiez votre clé API ou votre token et assurez-vous de sa validité et de son activation. Vous devrez peut-être en générer un nouveau depuis le tableau de bord de votre compte.
BadRequestError
Cause : Votre requête était mal formée ou il lui manquait certains paramètres obligatoires, comme un token ou une entrée. Solution : Le message d’erreur devrait préciser l’erreur commise. Consultez la documentation de la méthode API que vous appelez et assurez-vous d’envoyer des paramètres valides et complets. Vous devrez peut-être aussi vérifier l’encodage, le format ou la taille des données de votre requête.
ConflictError
Cause : La ressource a été mise à jour par une autre requête. Solution : Réessayez de mettre à jour la ressource et assurez-vous qu’aucune autre requête ne tente de la mettre à jour.
InternalServerError
Cause : Problème de notre côté. Solution : Patientez un court instant, puis réessayez votre requête. Contactez-nous si le problème persiste.
NotFoundError
Cause : La ressource demandée n’existe pas. Solution : Vérifiez que vous utilisez le bon identifiant de ressource.
PermissionDeniedError
Cause : Vous n’avez pas accès à la ressource demandée. Solution : Vérifiez que vous utilisez la bonne clé API, le bon identifiant d’organisation et le bon identifiant de ressource.
RateLimitError
Cause : Vous avez atteint la limite de débit qui vous est attribuée ou augmenté le trafic trop rapidement. Solution : Espacez vos requêtes et respectez l’en-tête Retry-After lorsqu’il est présent, dans les limites de votre politique de nouvelle tentative. Pour en savoir plus, consultez notre guide sur les limites de débit.
UnprocessableEntityError
Cause : Impossible de traiter la requête malgré un format correct. Solution : Envoyez à nouveau la requête.
Une erreur APIConnectionError indique que votre requête n’a pas pu atteindre nos serveurs ou établir une connexion sécurisée. Cela peut être dû à un problème réseau, à la configuration d’un proxy, à un certificat SSL ou à une règle de pare-feu.
Si vous rencontrez une erreur APIConnectionError, essayez les étapes suivantes :
Vérifiez vos paramètres réseau et assurez-vous de disposer d’une connexion Internet stable et rapide. Vous devrez peut-être changer de réseau, utiliser une connexion filaire ou réduire le nombre d’appareils ou d’applications qui utilisent votre bande passante.
Vérifiez la configuration de votre proxy et assurez-vous qu’elle est compatible avec nos services. Vous devrez peut-être mettre à jour ses paramètres, utiliser un autre proxy ou vous connecter sans proxy.
Vérifiez vos certificats SSL et assurez-vous qu’ils sont valides et à jour. Vous devrez peut-être installer ou renouveler vos certificats, utiliser une autre autorité de certification ou désactiver la vérification SSL.
Vérifiez les règles de votre pare-feu et assurez-vous qu’elles ne bloquent ni ne filtrent nos services. Vous devrez peut-être modifier les paramètres de votre pare-feu.
Le cas échéant, vérifiez que votre conteneur dispose des autorisations nécessaires pour envoyer et recevoir du trafic.
Si le problème persiste, consultez notre section « Erreurs persistantes » pour connaître les étapes à suivre.
Une erreur APITimeoutError indique que votre requête a pris trop de temps et que notre serveur a fermé la connexion. Cela peut être dû à un problème réseau, à une charge importante sur nos services ou à une requête complexe nécessitant davantage de temps de traitement.
Si vous rencontrez une erreur APITimeoutError, essayez les étapes suivantes :
Attendez quelques secondes, puis envoyez à nouveau votre requête. La congestion du réseau ou la charge sur nos services peut parfois diminuer, ce qui peut permettre à votre requête d’aboutir à la deuxième tentative.
Vérifiez vos paramètres réseau et assurez-vous de disposer d’une connexion Internet stable et rapide. Vous devrez peut-être changer de réseau, utiliser une connexion filaire ou réduire le nombre d’appareils ou d’applications qui utilisent votre bande passante.
Si le problème persiste, consultez notre section « Erreurs persistantes » pour connaître les étapes à suivre.
Une erreur AuthenticationError indique que votre clé API ou votre token était invalide, avait expiré ou avait été révoqué. Cela peut être dû à une faute de frappe, à une erreur de format ou à une faille de sécurité.
Si vous rencontrez une erreur AuthenticationError, essayez les étapes suivantes :
Vérifiez que votre clé API ou votre token est correct et actif. Vous devrez peut-être générer une nouvelle clé depuis le tableau de bord des clés API, vérifier l’absence d’espaces ou de caractères superflus, ou utiliser une autre clé ou un autre token si vous en avez plusieurs.
Assurez-vous d’avoir respecté le format requis.
Une erreur BadRequestError (anciennement InvalidRequestError) indique que votre requête était mal formée ou qu’il lui manquait certains paramètres obligatoires, comme un token ou une entrée. Cela peut être dû à une faute de frappe, à une erreur de format ou à une erreur de logique dans votre code.
Si vous rencontrez une erreur BadRequestError, essayez les étapes suivantes :
Lisez attentivement le message d’erreur pour identifier précisément le problème. Le message devrait indiquer quel paramètre était invalide ou manquant, ainsi que la valeur ou le format attendu.
Consultez la Référence de l’API pour la méthode d’API que vous appeliez et assurez-vous d’envoyer des paramètres valides et complets. Vous devrez peut-être vérifier les noms, les types, les valeurs et les formats des paramètres pour vous assurer qu’ils correspondent à la documentation.
Vérifiez l’encodage, le format ou la taille des données de votre requête et assurez-vous qu’ils sont compatibles avec nos services. Vous devrez peut-être encoder vos données en UTF-8, les mettre au format JSON ou les compresser si elles sont trop volumineuses.
Testez votre requête avec un outil comme Postman ou curl et assurez-vous qu’elle fonctionne comme prévu. Vous devrez peut-être déboguer votre code et corriger les erreurs ou les incohérences dans la logique de votre requête.
Si le problème persiste, consultez notre section « Erreurs persistantes » pour connaître les étapes à suivre.
Une erreur InternalServerError indique qu’un problème est survenu de notre côté lors du traitement de votre requête. Cela peut être dû à une erreur temporaire, à un bug ou à une panne du système.
Nous vous présentons nos excuses pour la gêne occasionnée et mettons tout en œuvre pour résoudre les problèmes au plus vite. Vous pouvez consulter notre page d’état des services pour en savoir plus.
Si vous rencontrez une erreur InternalServerError, essayez les étapes suivantes :
Attendez quelques secondes, puis envoyez à nouveau votre requête. Il arrive que le problème soit résolu rapidement et que votre requête aboutisse à la deuxième tentative.
Consultez notre page d’état des services pour vérifier si des incidents ou des opérations de maintenance en cours peuvent affecter nos services. Si un incident est en cours, suivez les mises à jour et attendez sa résolution avant d’envoyer à nouveau votre requête.
Si le problème persiste, consultez notre section « Erreurs persistantes » pour connaître les étapes à suivre.
Notre équipe d’assistance examinera le problème et vous répondra dès que possible. Les délais d’attente peuvent être longs en raison du grand nombre de demandes. Vous pouvez également publier un message sur notre forum communautaire, en veillant à n’inclure aucune information sensible.
Une erreur RateLimitError indique que vous avez atteint la limite de débit qui vous est attribuée. Cela signifie que vous avez envoyé trop de tokens ou de requêtes sur une période donnée et que nos services vous empêchent temporairement d’en envoyer davantage.
Nous appliquons des limites de débit pour garantir une utilisation équitable et efficace de nos ressources, ainsi que pour éviter les abus ou la surcharge de nos services.
Si vous rencontrez une erreur RateLimitError, essayez les étapes suivantes :
Envoyez moins de tokens ou de requêtes, ou ralentissez le rythme. Vous devrez peut-être réduire la fréquence ou le volume de vos requêtes, regrouper vos tokens par lots ou appliquer un délai d’attente exponentiel entre les tentatives lorsque l’en-tête Retry-After est absent. Consultez notre guide sur les limites de débit pour en savoir plus.
Lorsque l’en-tête Retry-After est présent, attendez au moins le délai qu’il indique avant de réessayer. La bibliothèque Python peut interrompre les nouvelles tentatives automatiques lorsque le délai indiqué par le serveur dépasse la limite qu’elle prend en charge. Si vous réessayez au niveau de l’application, respectez le délai initial et tenez compte des nouvelles tentatives effectuées par le SDK.
Vous pouvez également consulter vos statistiques d’utilisation de l’API depuis le tableau de bord de votre compte.
Les données et les en-têtes de la requête que vous avez envoyés
L’horodatage et le fuseau horaire de votre requête
Tout autre détail pertinent pouvant nous aider à diagnostiquer le problème
Notre équipe d’assistance examinera le problème et vous répondra dès que possible. Les délais d’attente peuvent être longs en raison du grand nombre de demandes. Vous pouvez également publier un message sur notre forum communautaire, en veillant à n’inclure aucune information sensible.
Gestion des erreurs
Nous vous conseillons de gérer dans votre code les erreurs renvoyées par l’API. Pour cela, vous pouvez utiliser un extrait de code comme celui-ci :
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21import OpenAI from"openai";constclient=newOpenAI();try {constresponse=await client.responses.create({ model: "gpt-6-astra", input: "Hello world", }); console.log(response.output_text);} catch (error) {if (error instanceofOpenAI.APIConnectionError) { console.error("Failed to connect to the OpenAI API:", error.message); } elseif (error instanceofOpenAI.RateLimitError) { console.error("OpenAI API request exceeded its rate limit:", error.message); } elseif (error instanceofOpenAI.APIError) { console.error("OpenAI API returned an error:", error.status, error.message); } else {throw error; }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import openaifrom openai import OpenAIclient = OpenAI()try: response = client.responses.create(model="gpt-6-astra", input="Hello world")except openai.APIConnectionError as e: print(f"Failed to connect to OpenAI API: {e}")except openai.RateLimitError as e: print(f"OpenAI API request exceeded rate limit: {e}")except openai.APIError as e: print(f"OpenAI API returned an API Error: {e}")else: print(response.output_text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28package mainimport ( "context" "errors" "fmt" "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/responses")func main() { client := openai.NewClient() response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{ Model: "gpt-6-astra", Input: responses.ResponseNewParamsInputUnion{OfString: openai.String("Hello world")}, }) if err != nil { var apiError *openai.Error if errors.As(err, &apiError) { fmt.Println("OpenAI API returned an API error:", apiError) return } fmt.Println("Failed to connect to OpenAI API:", err) return } fmt.Println(response.OutputText())}