API Error: Connection lost mid-response : causes et solutions — l'erreur « connexion perdue » renommée en v2.1.227
Dans Claude Code, la réponse s'arrête au milieu sur « API Error: Connection lost mid-response. The response above may be incomplete. » — et chercher ce libellé tel quel ne donne presque rien, parce que c'est un nom récent. La référence des erreurs officielle écrit noir sur blanc qu'avant la v2.1.227, Connection lost mid-response s'affichait sous la forme Connection closed mid-response ; au même moment, Response stalled mid-stream est devenu The response stopped arriving, et Connection closed while thinking, before producing a response est devenu Connection lost before a response was produced. Le phénomène existait donc déjà, seuls les mots ont changé. Cet article part de ce renommage et s'appuie uniquement sur la documentation officielle et sur des tickets publics. D'abord la définition officielle des six messages de coupure en cours de réponse (Server error, Connection lost, computer went to sleep, The response stopped arriving, Part of the response never arrived, The response stream was malformed), puis la raison pour laquelle la sortie déjà transmise est conservée à dessein — un renvoi risquerait d'exécuter deux fois le même appel d'outil — et le fait que la procédure de reprise consiste à répondre continue. Ensuite, pourquoi il n'y a pas de nouvelle tentative automatique, expliqué par l'arbre des Automatic retries officiels : une rupture avant tout achèvement est renvoyée jusqu'à dix fois avec recul exponentiel ; après la réflexion mais avant la sortie, deux renvois au maximum puis Connection lost before a response was produced ; après l'achèvement d'un bloc, aucun renvoi, seulement la mention. Viennent ensuite les trois couches où la connexion peut se rompre (le poste et sa liaison, le trajet avec proxy et passerelle, le côté serveur et la réutilisation des connexions), la relecture des fichiers lors d'une rotation de certificats mTLS (depuis la v2.1.232), une check-list de diagnostic en neuf gestes, les valeurs par défaut des quatre minuteurs de surveillance du flux (first-byte 180 s, event 300 s, byte 180 s, body idle 5 minutes) et les variables CLAUDE_CODE_MAX_RETRIES, CLAUDE_CODE_RETRY_WATCHDOG et API_TIMEOUT_MS, un tableau de correspondance avec huit messages voisins, et enfin deux signalements réels où le HTTPS brut est sain et où seule la CLI tombe sur ECONNRESET (#86473 et #85979). La conclusion sépare les niveaux de fiabilité : le symptôme, le sens et la procédure de reprise sont documentés officiellement, l'explication de la cause ne l'est pas, et le CHANGELOG ne porte aucune trace du renommage.