Aller au contenu
Mastering Claude

Accueil / Quand ça déraille

Quand ça déraille9 minApplication

Erreurs d'API et limite de débit

Un appel à l'API échoue de plusieurs façons différentes : une erreur 400 ou 404 signale le plus souvent une requête mal formée qui doit être corrigée avant tout nouvel essai, sauf le cas particulier d'un 400 renvoyé pour un plafond de dépense atteint, tandis qu'une erreur 429 ne se résout en attendant que si elle porte un en-tête Retry-After, ce qui n'est pas le cas d'un plafond de dépense atteint.

Une erreur renvoyée par l'API Anthropic porte un code de statut qui distingue des causes très différentes. Une erreur 400, invalid_request_error, ou 404, not_found_error, signale une requête mal formée : un paramètre invalide, un contenu incorrect, ou un identifiant de modèle qui n'existe plus tel quel. Réessayer cet appel sans le corriger reproduit la même erreur indéfiniment, la seule sortie est de recaler l'appel sur la spécification en vigueur. Un identifiant de modèle qui a changé de nom depuis la rédaction d'un script explique une bonne partie de ces erreurs 400 et 404 : la documentation actuelle du modèle en vigueur reste la première chose à ouvrir avant de soupçonner autre chose. Un 400 n'est cependant pas toujours une requête mal formée : l'API rend aussi ce code quand l'usage atteint un plafond de dépense fixé pour l'organisation ou l'espace de travail, sauf sur l'espace de travail Claude Code qui peut alors renvoyer un 429 à la place. Dans ce cas précis, corriger la requête ne sert à rien, c'est le plafond lui même qu'il faut relever.

Toutes les erreurs 429 ne se résolvent pas en attendant

Une erreur 429, rate_limit_error, signale un plafond atteint, mais deux plafonds distincts produisent ce même code. Un débit temporaire dépassé porte un en-tête Retry-After et se résout en respectant le délai qu'il indique avant de réessayer. Un plafond de dépense atteint pour un palier ne porte, lui, aucun en-tête Retry-After : la documentation le dit sans détour, un tel 429 échoue sans relâche jusqu'à ce que l'accès soit rétabli. Patienter face à une telle réponse ne sert à rien : continuer à réessayer dans ce cas gaspille des appels pour rien et retarde la vraie solution, relever le plafond fixé par l'organisation avant de reprendre l'envoi des requêtes.

HTTP/1.1 429 Too Many Requests
retry-after: 12

{"type":"error","error":{"type":"rate_limit_error"}}

La présence ou l'absence de cet en-tête, pas le seul code 429, tranche entre attendre et agir autrement.

Dans Claude Code, deux variables pilotent les nouvelles tentatives

Une erreur 529, overloaded_error, affiche dans Claude Code un message signalant que l'API est à pleine capacité, sans entamer le quota d'usage de la session. Cette précision compte : une série de 529 peut inquiéter sans pour autant grignoter le volume d'usage que l'abonnement autorise. Claude Code retente automatiquement les erreurs 429 et 529 de type débit temporaire, jamais les 429 de plafond de dépense d'une passerelle. CLAUDE_CODE_MAX_RETRIES borne le nombre de tentatives, CLAUDE_CODE_RETRY_WATCHDOG permet de retenter indéfiniment en session non surveillée : la figure qui accompagne cette leçon en donne les valeurs exactes.

Décider s'il faut patienter ou agir revient déjà dans une commande bloquée, où le même choix se pose face à un silence qui peut annoncer un blocage réel ou un travail encore en cours.

Figure 1

Quatre codes de statut, leur cause et le geste de récupération

Code de statutSignificationCause probableGeste de récupération
400invalid_request_errorParamètre invalide ou contenu mal formé, parfois un plafond de dépense fixé par l'organisationCorriger la requête avant tout nouvel essai, vérifier le plafond côté organisation
404not_found_errorPoint d'accès ou identifiant de modèle incorrectVérifier l'identifiant exact dans la documentation actuelle avant de réessayer
429rate_limit_errorDébit temporaire dépassé, ou plafond de dépense d'un palier atteintAttendre le délai de l'en-tête Retry-After s'il est présent, sinon ne pas attendre
529overloaded_errorCapacité de l'API saturée, propre à Claude CodeLaisser Claude Code retenter automatiquement, sans que cela n'entame le quota d'usage
La table croise quatre codes de statut cités dans le corps avec leur signification technique, leur cause probable, et le geste de récupération qui leur correspond.
Figure 2

Tentatives automatiques et tarif de la Batch API

10tentatives par défaut
nombre de nouvelles tentatives par défaut sur une erreur 429 ou 529 temporaire, variable CLAUDE_CODE_MAX_RETRIES
code.claude.com/docs/en/errors, 2026-09-02
15tentatives, plafond
plafond du nombre de tentatives que CLAUDE_CODE_MAX_RETRIES peut atteindre
code.claude.com/docs/en/errors, 2026-09-02
50% du tarif standard
réduction de tarif appliquée à un traitement asynchrone par la Batch API, par rapport à l'API standard
platform.claude.com/docs/en/build-with-claude/batch-processing, 2026-09-02
Ces trois valeurs bornent le nombre de nouvelles tentatives que Claude Code effectue sur une erreur temporaire, et la réduction de tarif appliquée à un traitement asynchrone par lots.
Calibrez vous-même

Un script envoie un appel à l'API Anthropic qui échoue avec un code 429. La réponse contient un en-tête retry-after fixé à douze secondes. Le développeur programme une nouvelle tentative après ce délai exact.

Écrivez en une phrase ce que cette situation établit, et en une phrase ce qu'elle n'établit pas.

Ce qu’il faut retenir
  • Un identifiant de modèle périmé ou un paramètre mal formé provoque une erreur 400 ou 404, qui ne se réessaie pas telle quelle sans corriger la requête d'abord, sauf le cas particulier d'un 400 renvoyé pour un plafond de dépense atteint, où c'est le plafond qu'il faut relever.
  • Une erreur 429 recouvre deux plafonds distincts : un débit temporaire, qui se résout en respectant le délai de l'en-tête Retry-After, et un plafond de dépense de palier, qui ne porte pas cet en-tête et ne se résout pas en attendant.
  • Une erreur 529 dans Claude Code signale une saturation de la capacité de l'API et n'entame pas le quota d'usage de la session.
  • Claude Code retente automatiquement les erreurs 429 et 529 de type débit temporaire, jamais les 429 liées à un plafond de dépense d'une passerelle.
  • La Batch API traite les requêtes de façon asynchrone, à un tarif réduit par rapport à l'API standard, pour un usage qui tolère un délai de traitement plutôt qu'une réponse immédiate.
À faire maintenant

Envoyez un appel à l'API avec un nom de modèle invalide inventé, par exemple claude-inexistant, lisez le code de statut renvoyé et le champ type de l'erreur dans la réponse JSON, puis confirmez qu'il s'agit bien d'un problème de forme et non d'une limite de débit.

Vérifier à la source

Chaque affirmation datable de cette leçon renvoie ici au texte public qui la porte. Une source qui ne s’ouvre pas ne prouve rien.