API Error: Connection closed mid-response en Claude Code: causas y solución
Claude Code se detiene a mitad de una respuesta con «API Error: Connection closed mid-response. The response above may be incomplete.» No es un problema de prompting: la conexión que transportaba la respuesta en streaming se cerró mientras la respuesta todavía llegaba. Este artículo se apoya únicamente en la referencia de errores oficial, el changelog oficial y reportes respaldados por capturas de paquetes. Empieza por las definiciones oficiales: Connection closed significa que el enlace se cortó, Response stalled que se quedó en silencio y Server error que llegó un 5xx a mitad de stream; y explica por qué la salida parcial se conserva deliberadamente (reenviar podría ejecutar dos veces las mismas llamadas a herramientas) y que el paso de recuperación documentado es responder continue. Después separa las tres capas donde puede originarse el cierre (tu equipo y la suspensión, un corte por inactividad en un proxy o VPN, o un cierre iniciado por el servidor) y presenta las mediciones publicadas por quien reportó el issue #67766: los diez incidentes fueron cierres limpios del servidor, el error salió entre 3 y 105 ms después del FIN, ya se habían entregado entre 7 y 20 KB de la respuesta, el cuerpo de la petición pesaba entre 1 y 2,5 MB, una conexión nueva funcionó en unos 20 ms y aparecieron 200 errores en 171 incidentes a lo largo de 23 días de transcripciones, 87 de ellos a menos de cinco segundos de la llamada anterior. El núcleo práctico es una cronología de entradas reales del changelog —2.1.179 conserva lo parcial, 2.1.185 pasa el aviso de estancamiento de 10 a 20 segundos, 2.1.198 reintenta los cortes transitorios con backoff, 2.1.199 conserva lo parcial ante errores de servidor a mitad de stream y 2.1.214 desactiva el pool keep-alive tras un error de conexión obsoleta— contrastada con las versiones de los reportes (2.1.173, 2.1.181 y 2.1.183), todas anteriores a la 2.1.198. Cierra con las condiciones que suben la probabilidad, una lista de comprobación de ocho pasos, seis pautas para desarrolladores, cómo distinguirlo de Unable to connect y Prompt is too long, y una separación clara entre lo confirmado oficialmente y lo que no.