API Error: Connection lost mid-response: causas y solución, el error de conexión que v2.1.227 renombró
Claude Code se detiene a media respuesta con «API Error: Connection lost mid-response. The response above may be incomplete.» y, al buscar ese texto tal cual, apenas aparece información. El motivo es que se trata de un nombre reciente: la referencia oficial de errores deja escrito que antes de v2.1.227 ese mismo mensaje se mostraba como Connection closed mid-response, y que en el mismo cambio Response stalled mid-stream pasó a ser The response stopped arriving y Connection closed while thinking, before producing a response pasó a ser Connection lost before a response was produced. Es decir, el fenómeno existía desde antes y lo único que cambió fue la palabra. Este artículo parte de ese renombrado y se apoya solo en la documentación oficial y en las incidencias públicas. Primero, la definición oficial de los cuatro mensajes de corte a media respuesta, Server error, Connection lost, Your computer went to sleep y The response stopped arriving, y el motivo por el que la salida ya emitida se conserva a propósito: reenviar la petición podría ejecutar dos veces la misma llamada de herramienta. De ahí que el procedimiento de recuperación sea responder continue. Después, por qué no se reintenta de forma automática, explicado con la bifurcación de Automatic retries de la documentación oficial: un corte antes de completar nada se reenvía hasta diez veces con retroceso exponencial, tras el razonamiento y antes de la salida se reenvía hasta dos veces y termina con Connection lost before a response was produced, y tras completar un bloque ya no se reenvía y aparece esta nota. Siguen las tres capas donde puede producirse el corte, el equipo y la línea, el camino con proxy y pasarelas, y el servidor con la reutilización de conexiones, más la relectura del material mTLS rotado desde v2.1.232, una lista de comprobación de nueve pasos, los valores por defecto de los cuatro temporizadores de vigilancia del flujo, 180 segundos para el primer byte, 300 para los eventos, 180 para los bytes y cinco minutos de inactividad del cuerpo, y las variables CLAUDE_CODE_MAX_RETRIES, CLAUDE_CODE_RETRY_WATCHDOG y API_TIMEOUT_MS, entre otras. También una tabla para distinguir los ocho mensajes parecidos y dos informes reales en los que el HTTPS puro pasa sin problemas y solo la CLI cae con ECONNRESET, el #86473 y el #85979. Se cierra separando por nivel de certeza lo que sí está documentado, síntoma, significado y recuperación, de lo que no: no hay explicación oficial de la causa y el renombrado no consta en el CHANGELOG. Y una advertencia previa: las versiones anteriores a v2.1.222 emitían este aviso incluso con la respuesta completa, así que conviene comprobar claude --version antes de diagnosticar nada.