« API Error: The response stopped arriving » signale qu'au milieu d'une réponse en cours de diffusion, les données ont cessé d'arriver alors que la connexion restait ouverte, et que le minuteur de surveillance de Claude Code lui-même a coupé cette connexion. Tout ce qui avait été terminé avant ce moment reste affiché à l'écran. Dans une session interactive, il suffit de répondre continue pour reprendre à partir du dernier point terminé.

API Error: The response stopped arriving. The response above may be incomplete.

Avant la v2.1.227, ce message s'affichait sous la forme Response stalled mid-stream. La référence officielle des erreurs indique explicitement ce changement de nom, et ce qui se passe est identique. Si vous cherchez des informations ou des rapports de bug rédigés avec l'ancien libellé, faites la recherche avec les deux formulations.

Regardez d'abord la formulation qui suit « API Error: »

Les messages « arrêté » et « coupé » ne sont pas formulés de la même façon selon la cause

The response stopped arriving
La sortie avait commencé, puis les données se sont arrêtées alors que la connexion restait ouverte
→ Reprendre avec continue
Le sujet de cet article
Connection lost mid-response
La sortie avait commencé, puis la connexion elle-même a été rompue
→ Voir la différence entre coupure et silence
Ancien libellé : Connection closed
The response stalled before a response was produced
La réflexion était terminée, puis tout s'est figé avant le début de la moindre sortie
→ Les renvois ne sont pas traités pareil
Aucune sortie n'est conservée
Streaming response ended before any complete data was received
La réponse s'est terminée sans aucune donnée exploitable, elle a donc été renvoyée sans streaming
→ Soupçonner un proxy sur le trajet
Elle s'est terminée à vide, sans s'arrêter en route
Schéma pour choisir où regarder à partir du libellé du message, établi d'après la référence officielle des erreurs.

1. Ce que signifie ce message — un silence, pas une coupure

La référence officielle des erreurs de Claude Code explique ce message ainsi : la connexion est restée ouverte mais a cessé de transmettre des données, et la surveillance d'inactivité du streaming (idle watchdog) l'a donc coupée. Ce n'est pas le corps d'une erreur renvoyée par l'API, mais une mention que Claude Code ajoute lui-même pendant qu'il reçoit la réponse.

Même pour un simple « arrêt en cours de route », Claude Code change de formulation selon la cause. La documentation officielle en liste quatre, qui se terminent toutes par la même phrase : « The response above may be incomplete. » (la réponse ci-dessus est peut-être incomplète).

API Error: Server error mid-response. The response above may be incomplete.
API Error: Connection lost mid-response. The response above may be incomplete.
API Error: Your computer went to sleep mid-response. The response above may be incomplete.
API Error: The response stopped arriving. The response above may be incomplete.

La première ligne apparaît quand le serveur renvoie une erreur de surcharge ou une erreur 5xx en cours de réponse, la deuxième quand la connexion est rompue, la troisième quand l'ordinateur se met en veille pendant la réponse. Seule la quatrième, le message traité ici, indique que les données ont cessé d'arriver alors qu'il n'y a eu ni erreur ni coupure.

Quatre minuteurs de surveillance se chargent de couper

D'après la documentation officielle sur la configuration réseau, Claude Code dispose de quatre minuteurs qui interrompent un flux devenu silencieux. Le but est qu'une connexion morte ne reste pas bloquée indéfiniment et soit traitée comme un échec. Les trois premiers du tableau ci-dessous s'appliquent une fois que la réponse a commencé à arriver.

MinuteurCondition de coupureDurée par défaut
Surveillance au niveau de l'octetPas un seul octet n'arrive sur la ligne (pas même les keep-alive SSE)180 secondes en connexion directe à l'API Anthropic, 300 secondes sinon
Surveillance au niveau des événementsAucun événement de réponse ne peut être lu300 secondes (tous les fournisseurs)
Délai d'inactivité du corpsAucun octet pendant 5 minutes5 minutes (sauf API Anthropic en direct et Claude Platform on AWS)
Délai du premier octetAprès l'envoi, aucun en-tête de réponse n'arrive180 secondes en API directe, 300 secondes sinon (plus 1 seconde par tranche de 32 Ko de corps de requête). Produit No response from API, et non ce message

Si vous êtes connecté directement à l'API Anthropic, le seuil à retenir est celui de la surveillance au niveau de l'octet : 180 secondes. Autrement dit, l'écran semble figé pendant quelques minutes avant que ce message n'apparaisse. D'après la documentation officielle, lorsqu'une requête est toujours vivante mais qu'aucune donnée n'est arrivée depuis 20 secondes, la bannière suivante s'affiche d'abord. Elle signifie « ce n'est pas encore un échec », et le compte à rebours va jusqu'au moment de la coupure (avant la v2.1.185, le seuil était de 10 secondes et le libellé était différent).

Waiting for API response · will retry in … · check your network

Si les données reprennent, la bannière disparaît d'elle-même. Le message de cet article apparaît quand elle ne disparaît pas, que le délai arrive à son terme et qu'une partie de la sortie était déjà terminée.

2. Renommé en v2.1.227 depuis « Response stalled mid-stream »

Juste après avoir décrit les quatre messages, la référence officielle des erreurs précise qu'avant la v2.1.227, Connection lost mid-response s'affichait sous la forme Connection closed mid-response, et The response stopped arriving sous la forme Response stalled mid-stream. La même version a aussi changé le libellé du message affiché avant le début de toute sortie.

Message avant la v2.1.227Message actuelArticle de ce site
Response stalled mid-streamThe response stopped arrivingCet article
Response stalled while thinking, before producing a responseThe response stalled before a response was producedSection 3 de cet article
Connection closed mid-responseConnection lost mid-responseLes articles sur closed et lost (liens ci-dessous)

Un cas où l'ancien message Response stalled mid-stream est apparu en même temps qu'un modèle répétant sans fin le même mot est traité dans notre article sur Response stalled mid-stream et la boucle infinie de « court ». Pour le message côté coupure, les signalements de l'époque de l'ancien libellé sont réunis dans l'article sur Connection closed mid-response, et le libellé renommé est expliqué dans l'article sur Connection lost mid-response.

Un indice sur la version

Si vous voyez stopped arriving, votre Claude Code est en v2.1.227 ou plus récent. Si vous voyez stalled mid-stream, c'est une version plus ancienne.

Absent du CHANGELOG

Le 22 septembre 2026, nous avons lu l'entrée v2.1.227 du CHANGELOG officiel : le changement de libellé n'y figurait pas. La publication sur npm date du 10 août 2026 (UTC).

Chercher avec les deux libellés

Le même phénomène a été signalé sous deux noms. Quand vous cherchez dans les issues GitHub, essayez l'ancienne et la nouvelle formulation.

Avant la v2.1.222, il peut s'agir d'une fausse alerte

D'après la documentation officielle, Claude Code avait avant la v2.1.222 deux types de fausses alertes. La première : avec une passerelle passant par ANTHROPIC_BASE_URL ou ANTHROPIC_AWS_BASE_URL, il ne comptait que les événements lus et coupait le flux alors même que les keep-alive du serveur arrivaient. La seconde : il affichait aussi cette mention quand la connexion se figeait après la fin de la réponse, et traitait donc une réponse complète comme une erreur. Si claude --version indique une version inférieure à 2.1.222, commencez par mettre à jour.

3. Les différences avec les messages voisins

Le message affiché dépend de l'endroit où en était la réponse au moment de l'arrêt. Si l'on suit l'explication officielle « Automatic retries » dans l'ordre de progression d'une réponse, on obtient ceci.

Plus l'arrêt est tardif, plus la sortie conservée est grande, et moins il y a de renvoi automatique

① En attente des en-têtes

Les en-têtes de réponse n'arrivent pas dans le délai. Un renvoi au maximum

No response from API

② Rien de terminé

Les en-têtes sont arrivés mais pas le contenu, ou la réflexion s'est terminée puis tout s'est figé avant la sortie. Un renvoi au maximum, en dehors des 10 habituels ; si cela se fige de nouveau après la réflexion, la requête se termine sur le message ci-dessous

The response stalled before a response was produced

③ Après un bloc terminé

L'arrêt survient après la fin d'un bloc de texte ou d'un appel d'outil (y compris une fois la réflexion terminée et la rédaction commencée). Pas de renvoi

The response stopped arriving (cet article)

④ Après la fin de la réponse

La réponse complète est conservée et le tour se termine normalement. Aucune mention n'est affichée

Aucun message (v2.1.222 et suivantes)

Source : schéma établi à partir des sections « Automatic retries », « No response from API » et « The response above may be incomplete » de la référence officielle des erreurs de Claude Code.

La raison pour laquelle ③ n'est pas renvoyé est elle aussi documentée. Renvoyer la requête après la fin d'un bloc de texte ou d'un appel d'outil risquerait d'exécuter deux fois le même appel d'outil. Claude Code conserve donc ce qui est terminé et ajoute une mention, au lieu de jeter le tour.

MessageCe qui se passeSortie conservée et renvoi
The response stopped arrivingLa connexion reste ouverte, mais les données se sont arrêtéesLa partie terminée est conservée. Pas de renvoi
Connection lost mid-responseLa connexion elle-même a été rompueLa partie terminée est conservée. Pas de renvoi
Server error mid-responseLe serveur a renvoyé une surcharge ou une erreur 5xx en cours de routeLa partie terminée est conservée (v2.1.199 et suivantes). Pas de renvoi
The response stalled before a response was producedFigé deux fois de suite après la réflexion, avant le début de la sortieAucune sortie conservée. Affiché après un renvoi
No response from APIAucun en-tête de réponse n'est arrivé dans le délaiAucune sortie conservée. Affiché après un renvoi
Streaming response ended before any complete data was receivedLa réponse s'est terminée sans aucune donnée exploitableRenvoyée automatiquement sans streaming (simple avertissement)

La différence avec Connection lost mid-response : coupure ou silence

Les deux messages apparaissent après qu'une partie de la sortie a été produite, et dans les deux cas la sortie est conservée et l'on reprend avec continue. Ce qui diffère, c'est la manière dont tout s'est arrêté. Lost signifie que la connexion a été perdue : on soupçonne alors une micro-coupure du réseau local, une reconnexion du VPN ou un équipement sur le trajet qui a coupé la connexion. Stopped arriving signifie que la connexion est toujours là mais que rien n'y circule, et la coupure n'intervient qu'après avoir attendu toute la durée du minuteur de surveillance. C'est pourquoi le réglage des minuteurs abordé en section 6 ne peut avoir d'effet que du côté de stopped arriving.

La différence avec Streaming response ended… : arrêtée ou terminée à vide

D'après la documentation officielle, Streaming response ended before any complete data was received est un avertissement affiché quand une réponse s'est terminée sans avoir transmis la moindre donnée exploitable. Claude Code abandonne alors le streaming, renvoie la même requête et poursuit le tour. L'avertissement n'apparaît qu'une fois par session interactive (avant la v2.1.239, le renvoi se faisait en silence). La documentation indique qu'une cause fréquente est un proxy ou une passerelle sur le trajet qui consomme ou transforme le corps de la réponse. Avec stopped arriving, la réponse est arrivée en partie puis s'est arrêtée, et elle n'est pas renvoyée automatiquement.

4. Ce que devient le travail déjà fait

Selon l'explication officielle, Claude Code conserve tous les blocs terminés et, à la fin du tour, jette le dernier bloc resté inachevé. C'est pour cela que les dernières phrases à l'écran, ou le dernier appel d'outil, peuvent manquer. Les appels d'outil qui étaient terminés sont exécutés, et le tour se poursuit à partir de leurs résultats. Ce qui se passe après l'arrêt dépend de l'environnement d'exécution.

Session interactive

Lisez la réponse restée à l'écran et répondez continue : la suite reprend à partir du dernier bloc terminé. Redonner vos instructions depuis le début risque de répéter des opérations déjà exécutées.

-p, Agent SDK et sessions cloud

Si la réponse interrompue ne contient que du texte, sans appel d'outil, Claude Code s'invite lui-même à continuer. Il essaie jusqu'à 3 fois de suite, et la mention n'apparaît que lorsque ces tentatives sont épuisées (v2.1.246 et suivantes).

Sous-agents

Que la session soit interactive ou non, une réponse composée uniquement de texte amène le sous-agent à être relancé. Une fois ces relances épuisées, la mention devient le dernier message du sous-agent (v2.1.257 et suivantes).

Hooks

D'après la documentation officielle des hooks, un tour qui se termine sur une erreur d'API déclenche StopFailure au lieu de Stop. Sa sortie et son code de retour sont ignorés : un hook ne peut donc pas faire continue automatiquement.

La sortie de -p en cas d'arrêt, et comment continuer

Avec la sortie texte par défaut du mode non interactif, Claude Code affiche le dernier bloc de texte terminé dans ce tour, suivi de ce message (avant la v2.1.219, seul le message s'affichait et la réponse était jetée). En revanche, s'il ne reste aucun texte terminé — par exemple parce que la conversation a été compactée en plein tour et que ce texte a disparu —, seul le message s'affiche (ajouté après vérification dans la référence officielle des erreurs le 26 septembre 2026). Avec --output-format json ou stream-json, ce message est placé dans le champ result. La procédure officielle consiste à attendre que la connexion se stabilise, puis à reprendre la session et à envoyer continue.

# Continuer la conversation la plus récente
claude -p "continue" --continue

# Continuer une session précise par son ID
claude -p "continue" --resume "$session_id"

À propos de la reprise automatique par hook, l'auteur de l'issue #87972 écrit qu'à l'époque de l'ancien libellé, le hook Stop se déclenchait et permettait de continuer automatiquement, mais que cela a cessé de fonctionner à peu près au moment du changement de nom. C'est une observation de l'auteur, et la documentation officielle ne dit pas si l'ancien comportement était voulu. Si l'on s'en tient à la documentation officielle actuelle, un hook peut journaliser ou notifier, mais pas relancer le tour.

5. Les causes — ce qui est documenté et ce qui est signalé

Ce message ne fait que constater un résultat — « les données ont cessé d'arriver » — et ne dit pas pourquoi. Voici les informations, classées selon leur degré de certitude.

✅ Facteurs de silence ou de coupure du flux décrits dans la documentation officielle et le CHANGELOG

  • Mécanisme : les données se sont arrêtées alors que la connexion restait ouverte, et un minuteur de surveillance l'a coupée. En API directe, la coupure intervient après 180 secondes sans le moindre octet, keep-alive compris
  • Fausses alertes avec les passerelles : avant la v2.1.222, une passerelle passant par ANTHROPIC_BASE_URL ou une variable similaire pouvait être coupée alors même que les keep-alive arrivaient. Les passerelles passant par l'URL de base d'un fournisseur, comme ANTHROPIC_BEDROCK_BASE_URL, ne sont pas soumises à la surveillance au niveau de l'octet
  • Silence pendant une longue réflexion : le CHANGELOG de la v2.1.229 indique que des keep-alive SSE sont désormais envoyés sur les réponses en streaming des passerelles pendant les longues réflexions, pour éviter les coupures pour inactivité avec Vertex ou Bedrock en amont ; celui de la v2.1.257 indique la correction d'un problème où, sur Bedrock et Bedrock Mantle avec Opus 4.7 et suivants, les requêtes devenaient silencieuses pendant une longue réflexion non affichée et la connexion était coupée par le délai d'inactivité
  • Récupération après coupure : la v2.1.232 a corrigé un problème où, dans les configurations Bedrock, Vertex et passerelle, le délai d'inactivité du flux faisait échouer la requête sans récupération
  • Mise en mémoire tampon par un proxy : la documentation officielle des variables d'environnement explique que le plancher de 5 minutes de CLAUDE_STREAM_IDLE_TIMEOUT_MS sert à absorber les longues réflexions et la mise en mémoire tampon des proxys

La documentation officielle range ce message dans la section « Server errors » de la référence des erreurs. Cette section commence en indiquant que la plupart de ces erreurs viennent du fournisseur d'inférence, comme le service d'Anthropic, mais pour ce libellé précis, l'explication officielle s'arrête au mécanisme décrit ci-dessus. La documentation officielle ne précise pas si l'arrêt s'est produit sur votre réseau, sur un équipement du trajet ou sur le serveur.

🟡 Cas signalés sur GitHub dont la cause n'est pas établie

Le 22 septembre 2026, nous avons ouvert et lu les issues suivantes, qui contiennent ce libellé. Toutes relèvent de signalements ou de suppositions d'utilisateurs, et dans ce que nous avons lu, Anthropic n'a publié aucune réponse.

  • #88900 (Linux, 2.1.240, ni proxy ni passerelle) : la réponse s'est arrêtée après environ 0,5 à 2,7 Ko reçus, et la surveillance au niveau de l'octet l'a coupée au bout de 180 secondes. L'auteur indique que des sessions distinctes se sont arrêtées à la même minute et demande que les journaux côté serveur soient examinés
  • #90005 (Windows 11, 2.1.246) : 33 occurrences en une journée, contre 0 les jours précédents. L'auteur a mesuré la bande passante, la perte de paquets et le proxy et les juge sains, tout en précisant qu'il ne s'agissait pas de tests de connexions ouvertes longtemps, et écrit qu'il n'a pas pu exclure une coupure pour inactivité par un NAT de niveau opérateur (CGNAT)
  • #89027 (macOS, extension VS Code 2.1.238 à 2.1.241) : le journal a enregistré une coupure « byte-level » et 180000 ms de silence. C'est survenu pendant un WebFetch d'un sous-agent
  • #87246 (macOS, 2.1.232) : un signalement qui se contente de coller ce message, fermé comme non prévu (not planned). Un commentaire ajouté ensuite rapporte des sous-agents en arrière-plan qui s'arrêtaient les uns après les autres sur ce message

#88900 et #90005 disent tous deux que l'arrêt s'est produit alors que rien d'anormal n'apparaissait sur leur réseau. Cela ne suffit pas pour autant à conclure que le serveur est en cause. Comme le note aussi l'auteur de #90005, des tests sur des échanges courts ne reproduisent pas une connexion qui reste ouverte plusieurs minutes puis devient silencieuse en cours de route.

6. Que faire quand la réponse s'arrête

Les étapes sont classées de la moins coûteuse et la plus efficace à la plus lourde. Si c'est arrivé une seule fois, vous en avez fini après l'étape 2.

01

Vérifier la sortie restante et l'état réel du travail

Les appels d'outil qui étaient terminés ont été exécutés. Si l'arrêt est survenu pendant une réécriture de fichiers ou une commande, regardez d'abord ce qui a changé avec git status ou git diff.

02

Répondre continue

C'est la procédure de reprise officielle. La suite reprend à partir du dernier bloc terminé. Recoller vos instructions d'origine depuis le début reviendrait à relancer des opérations déjà faites.

03

Vérifier la version et mettre à jour

Consultez la version avec claude --version et mettez à jour avec claude update. En dessous de 2.1.222, il peut s'agir d'une des fausses alertes décrites en section 2. Si vous utilisez Bedrock, Vertex ou une passerelle, les versions 2.1.229, 2.1.232 et 2.1.257 contiennent aussi des corrections utiles (section 5).

04

Isoler le trajet réseau

Vérifiez le proxy utilisé sur la ligne Proxy de /status. Si les arrêts disparaissent quand vous désactivez le VPN ou le proxy, passez sur une autre connexion ou retirez la passerelle (ANTHROPIC_BASE_URL) pour vous connecter en direct, la cause se trouve dans ce que vous avez retiré.

05

Raccourcir chaque réponse

Découpez une consigne du type « lire un grand nombre de fichiers, puis rédiger un long rapport » en une étape de lecture et une étape de rédaction. La documentation officielle ne cite pas cette mesure pour ce message, mais son entrée « Request timed out » recommande de diviser les tâches longues en instructions plus petites. L'issue #87972 rapporte aussi l'astuce d'un utilisateur : garder chaque réponse courte rend les arrêts moins fréquents.

06

Consulter l'état des services

Vérifiez sur status.claude.com qu'aucun incident n'est en cours. Notez toutefois que l'auteur de #90005 indique que la page affichait « tout fonctionne normalement » pendant la période où les arrêts se succédaient. Un statut au vert ne prouve pas à lui seul que le problème vient de chez vous.

07

Si le trajet reste longtemps silencieux, allonger la surveillance

Dans un environnement où un proxy ou une passerelle accumule la réponse, allonger la surveillance au niveau de l'octet réduit les coupures. Placez le réglage dans la section env du fichier de configuration, comme ci-dessous. Les agents en arrière-plan ne reçoivent pas toujours les variables d'environnement du shell ; la documentation officielle recommande donc le fichier de configuration plutôt qu'un export dans le shell.

Exemple à écrire dans ~/.claude/settings.json (surveillance au niveau de l'octet portée à 10 minutes) :

{
  "env": {
    "CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS": "600000"
  }
}
Variable d'environnementDescription officielle
CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MSDurée de la seule surveillance au niveau de l'octet. Ramenée entre 10 secondes et 30 minutes. v2.1.210 et suivantes
CLAUDE_STREAM_IDLE_TIMEOUT_MSDurée des surveillances au niveau de l'octet et des événements. Une valeur inférieure à 5 minutes est relevée à 5 minutes, et le plafond au niveau de l'octet est de 30 minutes
API_FORCE_IDLE_TIMEOUT0 désactive le délai d'inactivité du corps de 5 minutes, 1 l'applique à tous les fournisseurs. Indépendant des minuteurs de surveillance
CLAUDE_CODE_MAX_RETRIESNombre de nouvelles tentatives (10 par défaut). La situation de ce message est conçue pour ne jamais être renvoyée, l'augmenter ne réduit donc pas sa fréquence

Désactiver la surveillance est déconseillé

Mettre CLAUDE_ENABLE_BYTE_WATCHDOG ou CLAUDE_ENABLE_STREAM_WATCHDOG à 0 arrête la surveillance elle-même. La documentation officielle explique que ces minuteurs existent pour qu'une connexion morte échoue et soit retentée au lieu de rester bloquée. Les désactiver peut faire disparaître le message, mais vous attendrez alors indéfiniment une connexion réellement arrêtée. Et si les données du serveur se sont vraiment arrêtées, allonger le délai ne fait que retarder l'échec.

7. Vérifier que c'est réglé

Ne considérez pas le problème comme réglé parce que le message n'est pas apparu une fois. Lancez un travail de taille comparable et vérifiez les quatre points suivants.

Version

claude --version reflète-t-il la mise à jour ? La version intégrée à une extension d'IDE ou à l'application de bureau peut être mise à jour séparément de la CLI

La bannière d'attente

Si Waiting for API response apparaît mais disparaît d'elle-même, les silences restent courts. La documentation officielle conseille de traiter la situation comme un problème réseau si la bannière apparaît à chaque essai

Journal de débogage

En lançant claude --debug, le journal est écrit dans ~/.claude/debug/<session-id>.txt. Les auteurs de #88900 et #89027 y ont trouvé, au moment de la coupure, une ligne commençant par « Streaming idle timeout (byte-level) » (le libellé de cette ligne ne figure pas dans la documentation officielle)

Le nombre dans les journaux de conversation

Les conversations sont enregistrées en JSONL sous ~/.claude/projects/. Comptez combien de fois ce libellé apparaît avant et après une mise à jour ou un changement de réglage, et comparez. La documentation officielle prévient que ce format est interne et change d'une version à l'autre

# Vérifier la version
claude --version

# Lancer avec le journal de débogage
claude --debug

# Compter les fichiers de conversation contenant ce libellé (macOS, Linux)
grep -rl "The response stopped arriving" ~/.claude/projects/ | wc -l

# De même, compter les lignes contenant ce libellé (PowerShell)
Get-ChildItem "$HOME\.claude\projects" -Recurse -Filter *.jsonl | Select-String -SimpleMatch "The response stopped arriving" | Measure-Object

Servez-vous de ce nombre comme d'un ordre de grandeur. L'auteur de #90005 écrit que, sur une période de 85 minutes, la réponse s'est arrêtée 15 fois à l'écran, mais qu'un seul enregistrement subsistait dans les journaux de conversation. Même si les journaux affichent 0, noter vous-même le nombre d'arrêts vus à l'écran est plus fiable.

8. Les informations à garder pour un signalement

La référence officielle des erreurs indique les quatre recours suivants quand le problème n'est pas résolu.

  • Exécuter /feedback dans Claude Code. La transcription de la conversation et votre description sont envoyées à Anthropic, et il est aussi possible d'ouvrir une issue GitHub préremplie. Avec des fournisseurs comme Bedrock ou Vertex, le tout est enregistré localement au lieu d'être envoyé
  • Exécuter claude doctor dans le shell pour obtenir un diagnostic en lecture seule de l'installation
  • Vérifier les incidents sur status.claude.com
  • Chercher dans les issues GitHub existantes, avec l'ancien et le nouveau libellé

Modèle de note pour un signalement

Environnement
Résultat de claude --version / OS / où vous l'utilisez (CLI dans le terminal, extension VS Code, application de bureau)
Trajet
API en direct, ou Bedrock, Vertex, passerelle (ANTHROPIC_BASE_URL) / présence d'un proxy ou d'un VPN
Message
Texte complet de l'erreur / heure de survenue et fuseau horaire / Waiting for API response s'est-il affiché juste avant ? / conversation principale ou sous-agent
Fréquence
Nombre par jour et date de début / mise à jour ou changement de réglage ce jour-là ?
Ce que vous avez essayé
Ce qui a changé avant et après la mise à jour, la désactivation du VPN ou du proxy, le passage sur une autre connexion ou le découpage des tours

9. Ce qui est confirmé et ce qui ne l'est pas

✅ Confirmé officiellement

  • Le sens : « la connexion est restée ouverte, les données se sont arrêtées, et un minuteur de surveillance a coupé »
  • Avant la v2.1.227, il s'affichait sous la forme Response stalled mid-stream
  • La sortie terminée est conservée, et l'on reprend avec continue
  • Il n'y a pas de renvoi, pour ne pas exécuter deux fois le même appel d'outil
  • Avant la v2.1.222, il y avait de fausses alertes avec les passerelles et lors d'un arrêt après la fin de la réponse

🟡 Signalé mais non confirmé

  • L'arrêt se produit même quand le réseau local est sain (#88900, #90005)
  • L'arrêt survient après quelques Ko reçus, dans plusieurs sessions à la fois (#88900)
  • Les journaux de conversation enregistrent moins d'occurrences que l'écran n'en montre (#90005)
  • À l'époque de l'ancien libellé, un hook Stop permettait une reprise automatique (#87972)

🔴 Non communiqué

  • Une explication officielle de la raison pour laquelle les données s'arrêtent (aucune réponse publique dans les issues ci-dessus)
  • Si l'arrêt se situe chez vous, sur le trajet ou sur le serveur
  • La raison du changement de nom (absente du CHANGELOG)

10. En résumé

« API Error: The response stopped arriving » signale qu'après la diffusion d'une partie de la réponse, les données se sont arrêtées alors que la connexion restait ouverte, et que le minuteur de surveillance de Claude Code a coupé. C'est la même chose que Response stalled mid-stream avant la v2.1.227, et la sortie terminée est conservée. Vérifiez d'abord l'état de votre travail, puis répondez continue.

Si le message revient souvent, essayez dans cet ordre : mettre à jour la version, isoler le VPN, le proxy ou la passerelle, puis raccourcir chaque réponse. Allonger la surveillance au niveau de l'octet n'est une option que dans les environnements où le trajet reste longtemps silencieux. Avec Connection lost mid-response, où la connexion elle-même est rompue, ce n'est pas au même endroit qu'il faut chercher : comparez donc d'abord le libellé du message. Les autres erreurs sont réunies dans notre récapitulatif des erreurs courantes de Claude Code et de leurs solutions.

FAQ

Q. Que signifie « API Error: The response stopped arriving » ?
A. Cela signifie qu'au milieu d'une réponse en cours de diffusion, les données ont cessé d'arriver alors que la connexion restait ouverte, et que le minuteur de surveillance de Claude Code a coupé cette connexion. C'est le message affiché pour un arrêt survenu après la fin d'un bloc de texte ou d'un appel d'outil, et la sortie produite jusque-là est conservée.

Q. Est-ce une erreur différente de « Response stalled mid-stream » ?
A. Non, c'est la même. La référence officielle des erreurs indique explicitement qu'avant la v2.1.227, ce message s'affichait sous la forme Response stalled mid-stream. Seul le libellé a changé ; cela ne signifie pas qu'un nouveau type de panne est apparu.

Q. Que répondre pour reprendre là où ça s'est arrêté ?
A. Répondez continue. La suite reprend à partir du dernier bloc terminé. Si l'arrêt est survenu au milieu d'une opération sur des fichiers ou d'une commande, il est plus sûr de vérifier d'abord l'état réel avec git status ou un outil équivalent avant de répondre.

Q. Augmenter le nombre de nouvelles tentatives fera-t-il disparaître le message ?
A. Non. Dans cette situation, Claude Code est conçu pour ne rien renvoyer du tout, afin de ne pas exécuter deux fois le même appel d'outil. CLAUDE_CODE_MAX_RETRIES s'applique aux échecs survenus avant le début de la sortie.

Q. Quelle différence avec « Connection lost mid-response » ?
A. Lost signifie que la connexion elle-même a été rompue ; stopped arriving signifie que la connexion est restée en place mais que les données ont cessé d'arriver. Dans les deux cas, la sortie terminée est conservée et l'on peut reprendre avec continue, mais seul stopped arriving peut bénéficier d'un réglage de la durée de surveillance.

Sources primaires consultées