«API Error: The response stopped arriving» indica que, en mitad de una respuesta en streaming, los datos dejaron de llegar aunque la conexión seguía abierta, y que el propio temporizador de vigilancia de Claude Code cortó esa conexión. Todo lo que se completó antes de ese momento sigue en pantalla. En una sesión interactiva, responde continue y Claude seguirá desde el último punto completado.
API Error: The response stopped arriving. The response above may be incomplete.
Antes de la v2.1.227, este mensaje decía Response stalled mid-stream. La referencia oficial de errores deja constancia del cambio de nombre, y lo que ocurre es lo mismo. Si buscas información o informes de errores redactados con el texto antiguo, busca con las dos cadenas.
Lo primero es leer lo que va después de «API Error:»
Los mensajes de «se detuvo» y «se cortó» cambian de texto según la causa
La salida ya había empezado y los datos se detuvieron con la conexión abierta
La salida ya había empezado y se cayó la propia conexión
Terminó de pensar y se atascó antes de que empezara ninguna salida
La respuesta terminó sin datos utilizables y se reenvió sin streaming
Índice
- 1. Qué significa el mensaje: silencio, no desconexión
- 2. En la v2.1.227 sustituyó a «Response stalled mid-stream»
- 3. En qué se diferencia de mensajes parecidos
- 4. Qué pasa con el trabajo hecho hasta ese momento
- 5. Causas: lo que está documentado y lo que se ha informado
- 6. Qué hacer cuando se detiene
- 7. Cómo comprobar que está resuelto
- 8. Qué información guardar al informar del error
- 9. Qué está confirmado y qué no
- 10. Resumen
- Preguntas frecuentes
1. Qué significa el mensaje: silencio, no desconexión
La referencia oficial de errores de Claude Code explica este mensaje así: la conexión siguió abierta pero dejó de entregar datos, de modo que el vigilante de inactividad del streaming (idle watchdog) la cortó. No es el cuerpo de un error devuelto por la API, sino una nota que añade el propio Claude Code mientras recibe la respuesta.
Aunque en todos los casos «se detuvo a medias», Claude Code redacta el mensaje de forma distinta según la causa. La referencia oficial enumera los cuatro siguientes, que terminan igual: «The response above may be incomplete.» (la respuesta anterior puede estar incompleta).
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 primera línea aparece cuando el servidor devuelve un error de sobrecarga o 5xx a mitad de la respuesta; la segunda, cuando se cae la conexión; la tercera, cuando el equipo entra en suspensión en mitad de la respuesta. Solo la cuarta, la de este artículo, significa que los datos dejaron de llegar sin que hubiera ni un error ni una desconexión.
Quien corta son cuatro temporizadores de vigilancia
Según la documentación oficial de configuración de red, Claude Code tiene cuatro temporizadores que abortan un stream que se ha quedado en silencio, para que una conexión muerta falle en lugar de quedarse colgada indefinidamente. Una vez que la respuesta ha empezado a llegar, actúan los tres primeros de la tabla.
| Temporizador | Cuándo corta | Tiempo predeterminado |
|---|---|---|
| Vigilancia a nivel de bytes | No llega ni un byte por la conexión (ni siquiera los keep-alive de SSE) | 180 segundos con conexión directa a la API de Anthropic; 300 segundos en los demás casos |
| Vigilancia a nivel de eventos | No se puede leer ningún evento de la respuesta | 300 segundos (todos los proveedores) |
| Tiempo de inactividad del cuerpo | No llega ningún byte durante 5 minutos | 5 minutos (salvo en la API directa de Anthropic y en Claude Platform on AWS) |
| Plazo del primer byte | Tras el envío, no llega ninguna cabecera de respuesta | 180 segundos en la API directa; 300 segundos en los demás casos (más 1 segundo por cada 32 KB del cuerpo de la petición). Produce No response from API, no este mensaje |
Si te conectas directamente a la API de Anthropic, la referencia es el límite de 180 segundos de la vigilancia a nivel de bytes. Es decir, la pantalla parece congelada durante unos minutos antes de que aparezca este mensaje. Según la referencia oficial, cuando la petición sigue viva pero llevan 20 segundos sin llegar datos, primero aparece el siguiente aviso. Significa «todavía no ha fallado», y la cuenta atrás llega hasta el momento del corte (antes de la v2.1.185 el umbral era de 10 segundos y el texto era otro).
Waiting for API response · will retry in … · check your network
Si los datos vuelven, el aviso desaparece solo. El mensaje de este artículo aparece cuando no desaparece, se llega al corte y parte de la salida ya se había completado.
2. En la v2.1.227 sustituyó a «Response stalled mid-stream»
Justo después de describir los cuatro mensajes, la referencia oficial de errores indica que, antes de la v2.1.227, Connection lost mid-response se mostraba como Connection closed mid-response y The response stopped arriving como Response stalled mid-stream. En esa misma versión también se renombró el mensaje de los atascos anteriores a cualquier salida.
| Mensaje antes de la v2.1.227 | Mensaje actual | Artículo de este sitio |
|---|---|---|
Response stalled mid-stream | The response stopped arriving | Este artículo |
Response stalled while thinking, before producing a response | The response stalled before a response was produced | Sección 3 de este artículo |
Connection closed mid-response | Connection lost mid-response | Los artículos sobre closed y lost (enlazados abajo) |
Un caso en el que el antiguo Response stalled mid-stream apareció junto con el modelo repitiendo la misma palabra una y otra vez se analiza en nuestro artículo sobre Response stalled mid-stream y el bucle infinito de «court». Para el mensaje de desconexión, los informes de la época del texto antiguo están en el artículo sobre Connection closed mid-response, y el texto renombrado se explica en el artículo sobre Connection lost mid-response.
Una pista sobre tu versión
Si ves stopped arriving, tu Claude Code es la v2.1.227 o posterior. Si ves stalled mid-stream, es una versión anterior.
No figura en el CHANGELOG
El 22 de septiembre de 2026 leímos la entrada de la v2.1.227 en el CHANGELOG oficial y el cambio de texto no aparecía. Se publicó en npm el 10 de agosto de 2026 (UTC).
Busca informes con los dos textos
El mismo fenómeno se ha informado con dos nombres. Al buscar issues en GitHub, prueba tanto el texto antiguo como el nuevo.
Antes de la v2.1.222 puede ser una falsa alarma
Según la referencia oficial, Claude Code anterior a la v2.1.222 tenía dos tipos de falsas alarmas. Una: con gateways configurados mediante ANTHROPIC_BASE_URL o ANTHROPIC_AWS_BASE_URL, solo contaba los eventos leídos y cortaba el stream aunque llegaran los keep-alive del servidor. La otra: también mostraba esta nota cuando la conexión se detenía después de terminar la respuesta, con lo que trataba una respuesta completa como un error. Si claude --version muestra una versión inferior a la 2.1.222, actualiza primero.
3. En qué se diferencia de mensajes parecidos
El mensaje que ves depende de hasta dónde había avanzado la respuesta cuando se detuvo. Si ordenamos la explicación oficial de «Automatic retries» según el avance de la respuesta, queda así.
Cuanto más tarde se detiene, más salida se conserva y menos se reintenta automáticamente
① Esperando las cabeceras
Las cabeceras de la respuesta no llegan dentro del plazo. Se reintenta como máximo una vez
No response from API
② Aún no se ha completado nada
Llegaron las cabeceras pero no el contenido, o terminó de pensar y se atascó antes de la salida. Se reintenta como máximo una vez, aparte de los 10 habituales; si vuelve a atascarse después de pensar, termina con el mensaje siguiente
The response stalled before a response was produced
③ Tras completar un bloque
Se detuvo después de completar un bloque de texto o una llamada a herramienta (incluido el caso en que terminó de pensar y empezó a escribir). No se reintenta
The response stopped arriving (este artículo)
④ Tras completar la respuesta
Se conserva la respuesta completa y el turno termina con normalidad. No aparece ninguna nota
Sin mensaje (v2.1.222 y posteriores)
El motivo por el que ③ no se reintenta también está documentado. Reenviar la petición después de completar un bloque de texto o una llamada a herramienta podría ejecutar dos veces la misma llamada a herramienta. Por eso Claude Code conserva lo completado y añade una nota en lugar de descartar el turno.
| Mensaje | Qué ocurre | Salida conservada y reintentos |
|---|---|---|
The response stopped arriving | Los datos se detuvieron con la conexión abierta | Se conserva lo completado. No se reintenta |
Connection lost mid-response | Se cayó la propia conexión | Se conserva lo completado. No se reintenta |
Server error mid-response | El servidor devolvió una sobrecarga o un 5xx a mitad de camino | Se conserva lo completado (v2.1.199 y posteriores). No se reintenta |
The response stalled before a response was produced | Se atascó dos veces seguidas después de pensar y antes de empezar la salida | No se conserva salida. Aparece tras un reintento |
No response from API | No llegó ninguna cabecera de respuesta dentro del plazo | No se conserva salida. Aparece tras un reintento |
Streaming response ended before any complete data was received | La respuesta terminó sin ningún dato utilizable | Se reenvía automáticamente sin streaming (solo aviso) |
La diferencia con Connection lost mid-response: corte o silencio
Los dos aparecen después de que haya salido parte de la respuesta, y en ambos se conserva la salida y se puede retomar con continue. Lo que cambia es la forma de detenerse. Lost significa que se determinó que la conexión se perdió, así que conviene sospechar de un microcorte en tu propia red, de una VPN que se reconecta o de un equipo intermedio que corta la conexión. Stopped arriving significa que la conexión sigue ahí pero no fluye nada por ella, y el corte llega solo después de agotar el tiempo del temporizador de vigilancia. Por eso los ajustes de temporizador de la sección 6 solo pueden ayudar en el caso de stopped arriving.
La diferencia con Streaming response ended…: se detuvo o terminó vacía
Según la referencia oficial, Streaming response ended before any complete data was received es un aviso que aparece cuando una respuesta terminó sin entregar ningún dato utilizable. Claude Code deja de usar streaming, reenvía la misma petición y continúa el turno. El aviso se muestra solo una vez por sesión interactiva (antes de la v2.1.239 el reenvío era silencioso). La referencia oficial señala que una causa habitual es un proxy o gateway en la ruta que consume o transforma el cuerpo de la respuesta. Stopped arriving, en cambio, es una respuesta que llegó en parte y luego se detuvo, y no se reenvía automáticamente.
4. Qué pasa con el trabajo hecho hasta ese momento
Según la explicación oficial, Claude Code conserva todos los bloques completados y descarta al final del turno el último bloque, el que estaba a medias. Por eso pueden faltar las últimas frases de la pantalla o la última llamada a herramienta. Las llamadas a herramientas que se habían completado se ejecutan, y el turno continúa a partir de sus resultados. Lo que ocurre después depende del entorno de ejecución.
Sesiones interactivas
Lee la respuesta que quedó en pantalla y responde continue: seguirá desde el último bloque completado. Si vuelves a dar las instrucciones desde el principio, corres el riesgo de repetir operaciones que ya se ejecutaron.
-p, Agent SDK y sesiones en la nube
Si la respuesta detenida es solo texto y no incluye llamadas a herramientas, Claude Code se pide a sí mismo que continúe. Lo intenta hasta 3 veces seguidas, y la nota solo aparece cuando se agotan esos intentos (v2.1.246 y posteriores).
Subagentes
Tanto en sesiones interactivas como no interactivas, si la respuesta es solo texto, se pide al subagente que continúe. Cuando se agotan esos intentos, la nota pasa a ser el último mensaje del subagente (v2.1.257 y posteriores).
Hooks
Según la documentación oficial de hooks, un turno que termina en un error de la API dispara StopFailure en lugar de Stop. Su salida y su código de salida se ignoran, así que un hook no puede hacer que Claude ejecute continue automáticamente.
Qué muestra -p cuando se detiene y cómo continuar
Con la salida de texto predeterminada del modo no interactivo, Claude Code imprime el último bloque de texto completado de ese turno y, a continuación, este mensaje (antes de la v2.1.219 solo mostraba el mensaje y la respuesta se descartaba). Sin embargo, si no queda ningún texto completado, por ejemplo porque la conversación se compactó en mitad del turno y ese texto desapareció, solo se muestra el mensaje (añadido tras comprobarlo en la referencia oficial de errores el 26 de septiembre de 2026). Con --output-format json o stream-json, el mensaje va en el campo result. El procedimiento oficial es esperar a que la conexión se estabilice, reanudar la sesión y enviar continue.
# Continuar la conversación más reciente
claude -p "continue" --continue
# Continuar una sesión concreta por su ID
claude -p "continue" --resume "$session_id"
Sobre la reanudación automática mediante hooks, el autor de la issue #87972 escribe que, en la época del texto antiguo, el hook Stop se disparaba y permitía continuar automáticamente, pero que dejó de funcionar más o menos cuando se cambió el nombre. Es una observación del autor, y la documentación oficial no dice si el comportamiento anterior era intencionado. Según la documentación oficial actual, un hook puede registrar o notificar, pero no puede reanudar el turno.
5. Causas: lo que está documentado y lo que se ha informado
Este mensaje solo comunica el resultado («dejaron de llegar datos») y no dice por qué se detuvo. A continuación, la información ordenada según su grado de certeza.
✅ Factores documentados oficialmente y en el CHANGELOG que hacen que un stream se quede en silencio o se corte
- Mecanismo: los datos se detuvieron con la conexión abierta y un temporizador de vigilancia la cortó. En la API directa, se corta tras 180 segundos sin bytes, keep-alive incluidos
- Falsas alarmas con gateways: antes de la v2.1.222, los gateways configurados mediante
ANTHROPIC_BASE_URLy similares podían cortarse aunque llegaran keep-alive. Los gateways que pasan por la URL base de un proveedor, comoANTHROPIC_BEDROCK_BASE_URL, quedan fuera de la vigilancia a nivel de bytes - Silencio durante razonamientos largos: la entrada del CHANGELOG de la v2.1.229 dice que ahora se envían keep-alive de SSE en las respuestas en streaming de los gateways durante el razonamiento largo, para evitar desconexiones por inactividad con Vertex o Bedrock como origen; la de la v2.1.257 dice que se corrigió un problema por el que, en Bedrock y Bedrock Mantle con Opus 4.7 y posteriores, las peticiones quedaban en silencio durante un razonamiento largo no visible y la conexión se cortaba por el tiempo de inactividad
- Recuperación tras un corte: la v2.1.232 corrigió un problema por el que, en configuraciones con Bedrock, Vertex o gateways, un tiempo de inactividad del stream hacía fallar la petición sin recuperarse
- Buffering del proxy: la documentación oficial de variables de entorno explica que el mínimo de 5 minutos de
CLAUDE_STREAM_IDLE_TIMEOUT_MSexiste para absorber los razonamientos largos y el buffering de los proxies
La referencia oficial sitúa este mensaje en su apartado «Server errors». Ese apartado empieza diciendo que la mayoría proceden del lado del proveedor de inferencia, como el servicio de Anthropic, pero para este texto concreto la explicación oficial no va más allá del mecanismo descrito arriba. La documentación oficial no determina si se detuvo en tu propia red, en un equipo intermedio o en el servidor.
🟡 Casos informados en GitHub cuya causa no está confirmada
El 22 de septiembre de 2026 abrimos y leímos las siguientes issues que contienen este texto. Todas son informes o suposiciones de usuarios y, en lo que leímos, no hay ninguna respuesta pública de Anthropic.
- #88900 (Linux, 2.1.240, sin proxy ni gateway): informa de que la respuesta se detuvo tras llegar unos 0,5–2,7 KB y de que la vigilancia a nivel de bytes la cortó a los 180 segundos. El autor dice que varias sesiones distintas se detuvieron en el mismo minuto y pide que se revisen los registros del servidor
- #90005 (Windows 11, 2.1.246): informa de 33 casos en un día, frente a 0 en los días anteriores. El autor midió el ancho de banda, la pérdida de paquetes y el proxy y los encontró en buen estado, pero advierte que no eran pruebas de conexiones abiertas durante mucho tiempo y escribe que no pudo descartar desconexiones por inactividad de un NAT de nivel de operador (CGNAT)
- #89027 (macOS, extensión de VS Code 2.1.238–2.1.241): informa de que el registro anotó un corte «byte-level» y 180000 ms de silencio. Ocurrió durante un WebFetch de un subagente
- #87246 (macOS, 2.1.232): un informe que solo pegaba este mensaje, cerrado como no previsto (not planned). En un comentario posterior se observa que varios subagentes en segundo plano se detuvieron uno tras otro con este mensaje
#88900 y #90005 dicen que se detuvo aunque su propia red no tenía ningún problema. Sin embargo, eso por sí solo no demuestra que la causa esté en el servidor. Como señala también el autor de #90005, las pruebas de conexiones cortas no reproducen una conexión que permanece abierta varios minutos y se queda en silencio a mitad de camino.
6. Qué hacer cuando se detiene
Los pasos van ordenados de menor esfuerzo y mayor efecto a mayor esfuerzo. Si solo ha pasado una vez, basta con llegar al paso 2.
Revisa la salida que quedó y el estado real del trabajo
Las llamadas a herramientas que se habían completado ya se ejecutaron. Si se detuvo mientras modificaba archivos o ejecutaba un comando, mira primero cuánto cambió con git status o git diff.
Responde continue
Es el procedimiento oficial de recuperación: continúa desde el último bloque completado. Si vuelves a pegar las instrucciones originales desde el principio, se ejecutarán otra vez operaciones que ya estaban hechas.
Comprueba la versión y actualiza
Consulta la versión con claude --version y actualiza con claude update. Si es anterior a la 2.1.222, puede tratarse de una de las falsas alarmas de la sección 2. Si usas Bedrock, Vertex o un gateway, las versiones 2.1.229, 2.1.232 y 2.1.257 también incluyen correcciones relacionadas (sección 5).
Aísla la ruta de red
Comprueba el proxy en uso en la línea Proxy de /status. Si deja de detenerse al desactivar la VPN o el proxy, al cambiar a otra conexión o al quitar el gateway (ANTHROPIC_BASE_URL) para conectarte directamente, la causa está en lo que quitaste.
Acorta cada respuesta
Divide instrucciones del tipo «lee muchísimos archivos y luego escribe un informe largo» en un paso de lectura y otro de redacción. La referencia oficial no lo propone como solución para este mensaje, pero en el apartado «Request timed out» recomienda dividir las tareas largas en instrucciones más pequeñas. En #87972 también se comparte el truco de un usuario: mantener cada respuesta corta hace que se detenga menos.
Consulta si hay incidencias
Revisa en status.claude.com si hay alguna incidencia en curso. Ten en cuenta, eso sí, que el autor de #90005 dice que la página de estado indicaba «todos los sistemas operativos» durante el periodo en que no paraba de detenerse. Que esté en verde no significa por sí solo que el problema sea tuyo.
Si la ruta se queda en silencio mucho tiempo, alarga la vigilancia
En entornos donde un proxy o gateway acumula la respuesta, alargar la vigilancia a nivel de bytes reduce los cortes. Configúralo en la sección env del archivo de ajustes, como se muestra abajo. Los agentes en segundo plano pueden no recibir las variables de entorno de tu shell, así que la documentación oficial recomienda el archivo de ajustes en lugar de exportarlas en la shell.
Ejemplo para ~/.claude/settings.json (vigilancia a nivel de bytes a 10 minutos):
{
"env": {
"CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS": "600000"
}
}
| Variable de entorno | Descripción oficial |
|---|---|
CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS | El tiempo de la vigilancia a nivel de bytes únicamente. Se ajusta a un valor entre 10 segundos y 30 minutos. v2.1.210 y posteriores |
CLAUDE_STREAM_IDLE_TIMEOUT_MS | El tiempo de las vigilancias a nivel de bytes y de eventos. Los valores inferiores a 5 minutos se elevan a 5 minutos, y en la vigilancia a nivel de bytes el máximo es 30 minutos |
API_FORCE_IDLE_TIMEOUT | Con 0 desactiva el tiempo de inactividad del cuerpo de 5 minutos; con 1 lo aplica a todos los proveedores. Es independiente de los temporizadores de vigilancia |
CLAUDE_CODE_MAX_RETRIES | El número de reintentos (10 por defecto). La situación de este mensaje está diseñada para no reenviarse en ningún caso, así que subirlo no hace que aparezca menos |
No se recomienda desactivar la vigilancia
Poner CLAUDE_ENABLE_BYTE_WATCHDOG o CLAUDE_ENABLE_STREAM_WATCHDOG a 0 detiene la propia vigilancia. La documentación oficial explica que estos temporizadores existen para que una conexión muerta falle y se reintente en lugar de quedarse colgada. Desactivarlos puede hacer que el mensaje desaparezca, pero entonces esperarás indefinidamente en una conexión que de verdad se ha detenido. Y si los datos del servidor se han detenido realmente, alargar el tiempo solo retrasa el fallo.
7. Cómo comprobar que está resuelto
No lo des por resuelto solo porque no haya aparecido una vez. Lanza una tarea de tamaño similar y revisa estos cuatro puntos.
Versión
Si claude --version refleja la actualización. La versión incluida en una extensión del IDE o en la aplicación de escritorio puede actualizarse por separado de la CLI
El aviso de espera
Si aparece Waiting for API response pero desaparece solo, los silencios se mantienen cortos. La referencia oficial recomienda tratarlo como un problema de red si aparece en cada intento
Registro de depuración
Si arrancas con claude --debug, el registro se escribe en ~/.claude/debug/<session-id>.txt. Los autores de #88900 y #89027 encontraron en el momento del corte una línea que empieza por «Streaming idle timeout (byte-level)» (el texto de esa línea no figura en la documentación oficial)
Recuento en los registros de conversación
Las conversaciones se guardan como JSONL en ~/.claude/projects/. Cuenta cuántas veces aparece este texto antes y después de una actualización o de un cambio de ajustes y compara. La documentación oficial advierte que el formato es interno y cambia entre versiones
# Comprobar la versión
claude --version
# Arrancar con registro de depuración
claude --debug
# Contar los archivos de conversación que contienen este texto (macOS, Linux)
grep -rl "The response stopped arriving" ~/.claude/projects/ | wc -l
# Igualmente, contar las líneas que contienen este texto (PowerShell)
Get-ChildItem "$HOME\.claude\projects" -Recurse -Filter *.jsonl | Select-String -SimpleMatch "The response stopped arriving" | Measure-Object
Usa el recuento como orientación. El autor de #90005 escribe que en un tramo de 85 minutos se detuvo 15 veces en pantalla, pero en los registros de conversación solo quedó 1 anotación. Aunque los registros marquen 0, lo más fiable es llevar tu propia cuenta de las veces que se detiene en pantalla.
8. Qué información guardar al informar del error
La referencia oficial de errores indica estos cuatro canales para cuando el problema no se resuelve.
- Ejecutar
/feedbackdentro de Claude Code. Envía a Anthropic la transcripción de la conversación y tu descripción, y también permite abrir una issue de GitHub ya rellenada. Con proveedores como Bedrock o Vertex, se guarda localmente en lugar de enviarse - Ejecutar
claude doctoren la shell para ver un diagnóstico de solo lectura de la instalación - Consultar incidencias en status.claude.com
- Buscar entre las issues existentes de GitHub, con el texto antiguo y con el nuevo
Plantilla de notas para el informe
- Entorno
- Resultado de
claude --version/ sistema operativo / dónde lo usas (CLI en la terminal, extensión de VS Code, aplicación de escritorio) - Ruta
- API directa, o Bedrock, Vertex o un gateway (
ANTHROPIC_BASE_URL) / si usas proxy o VPN - Mensaje
- Texto completo del error / hora en que ocurrió y zona horaria / si justo antes apareció
Waiting for API response/ conversación principal o subagente - Frecuencia
- Veces al día y día en que empezó / si ese día actualizaste o cambiaste algún ajuste
- Qué has probado
- Qué cambió antes y después de actualizar, desactivar la VPN o el proxy, usar otra conexión o dividir los turnos
9. Qué está confirmado y qué no
✅ Confirmado oficialmente
- Significa «la conexión siguió abierta, los datos se detuvieron y un temporizador de vigilancia la cortó»
- Antes de la v2.1.227 se mostraba como
Response stalled mid-stream - Se conserva la salida completada y se recupera con
continue - No se reenvía, para no ejecutar dos veces la misma llamada a herramienta
- Antes de la v2.1.222 había falsas alarmas con gateways y con detenciones posteriores a la respuesta completa
🟡 Informado, pero sin confirmar
- Se detiene aunque la red local esté en buen estado (#88900, #90005)
- Se detiene tras llegar unos pocos KB, en varias sesiones a la vez (#88900)
- Los registros de conversación anotan menos casos de los que se ven en pantalla (#90005)
- En la época del texto antiguo, un hook Stop podía reanudar automáticamente (#87972)
🔴 Sin información pública
- Una explicación oficial de por qué se detienen los datos (no hay respuesta pública en las issues anteriores)
- Si la detención está en el equipo local, en la ruta o en el servidor
- El motivo del cambio de nombre (no figura en el CHANGELOG)
10. Resumen
«API Error: The response stopped arriving» indica que, después de que parte de la respuesta ya hubiera llegado, los datos se detuvieron con la conexión abierta y el temporizador de vigilancia de Claude Code la cortó. Es lo mismo que Response stalled mid-stream antes de la v2.1.227, y la salida completada se conserva. Comprueba primero el estado de tu trabajo y luego responde continue.
Si se repite, prueba en este orden: actualizar la versión, aislar la VPN, el proxy o el gateway, y acortar cada respuesta. Solo en entornos donde la ruta se queda en silencio mucho tiempo tiene sentido alargar la vigilancia a nivel de bytes. Connection lost mid-response, en el que se cae la propia conexión, apunta a otros lugares donde investigar, así que compara primero el texto del mensaje. Los demás errores están reunidos en nuestra recopilación de errores habituales de Claude Code y sus soluciones.
Preguntas frecuentes
P. ¿Qué significa «API Error: The response stopped arriving»?
R. Significa que, en mitad de una respuesta en streaming, los datos dejaron de llegar con la conexión todavía abierta y el temporizador de vigilancia de Claude Code cortó esa conexión. Es el mensaje de una detención ocurrida después de completar un bloque de texto o una llamada a herramienta, y la salida hasta ese punto se conserva.
P. ¿Es un error distinto de «Response stalled mid-stream»?
R. Es el mismo. La referencia oficial de errores indica que, antes de la v2.1.227, este mensaje era Response stalled mid-stream. Solo ha cambiado el texto; no significa que haya empezado un tipo de fallo nuevo.
P. ¿Qué respondo para retomar donde se quedó?
R. Responde continue. Seguirá desde el último bloque completado. Si se detuvo en mitad de una operación con archivos o de un comando, es más seguro comprobar antes el estado real con git status o similar.
P. ¿Desaparecerá si subo el número de reintentos?
R. No. En esta situación, Claude Code está diseñado para no reenviar nada, de modo que la misma llamada a herramienta no se ejecute dos veces. CLAUDE_CODE_MAX_RETRIES se aplica a los fallos anteriores al inicio de la salida.
P. ¿En qué se diferencia de «Connection lost mid-response»?
R. Lost significa que se cayó la propia conexión; stopped arriving, que la conexión siguió abierta pero los datos dejaron de llegar. En ambos casos se conserva la salida completada y puedes retomar con continue, pero ajustar el tiempo de vigilancia solo puede ayudar en el caso de stopped arriving.
Fuentes primarias
- Claude Code — Error reference (documentación oficial): los cuatro mensajes de «The response above may be incomplete» y el cambio de nombre de la v2.1.227, las falsas alarmas anteriores a la v2.1.222, Automatic retries, el aviso de espera, No response from API, Streaming response ended before any complete data was received, Report an error
- Claude Code — Enterprise network configuration (documentación oficial): los cuatro temporizadores de vigilancia y sus tiempos predeterminados, las variables de entorno para configurarlos, los registros de depuración y cómo pasar ajustes a los agentes en segundo plano
- Claude Code — Environment variables (documentación oficial): descripción de
CLAUDE_STREAM_IDLE_TIMEOUT_MS,CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MSyAPI_FORCE_IDLE_TIMEOUT - Claude Code — Hooks reference (documentación oficial): StopFailure en los turnos que terminan en un error de la API
- Claude Code — Run Claude Code programmatically (documentación oficial): reanudación con
--continuey--resume - anthropics/claude-code — CHANGELOG (oficial): las entradas de las versiones v2.1.222, v2.1.227, v2.1.229, v2.1.232, v2.1.246 y v2.1.257
- Issues de GitHub: #88900, #90005, #89027, #87246, #87972 (todas son informes de usuarios; consultadas el 22 de septiembre de 2026)