Volver a las guías
Solución de problemas·30 de septiembre de 2026·6 min de lectura

Claude Code «La respuesta se detuvo a mitad del flujo» y «El flujo de respuesta terminó antes de recibir datos completos»: qué detiene el flujo

Ambos mensajes significan que la respuesta transmitida por el modelo se detuvo antes de completarse. «La respuesta anterior puede estar incompleta» se muestra cuando llegó parte de la respuesta y después el flujo se detuvo, se interrumpió o se rompió; Claude Code conserva lo recibido y al responder «continuar» retoma el turno. «El flujo de respuesta terminó antes de recibir datos completos» significa que no llegó nada utilizable, por lo que Claude Code reintenta la misma solicitud sin streaming; cuando esto sigue ocurriendo, la causa suele ser un proxy o una puerta de enlace entre Claude Code y el proveedor del modelo, como indica el propio mensaje.

Última revisión: .

Ambos mensajes significan que la respuesta transmitida por el modelo se detuvo antes de completarse. «La respuesta anterior puede estar incompleta» se muestra cuando llegó parte de la respuesta y después el flujo se detuvo, se interrumpió o se rompió; Claude Code conserva lo recibido y al responder «continuar» retoma el turno. «El flujo de respuesta terminó antes de recibir datos completos» significa que no llegó nada utilizable, por lo que Claude Code reintenta la misma solicitud sin streaming; cuando esto sigue ocurriendo, la causa suele ser un proxy o una puerta de enlace entre Claude Code y el proveedor del modelo, como indica el propio mensaje.

El error

printed by Claude Code
API Error: Response stalled mid-stream. The response above may be incomplete.

# the wording in Claude Code's current error reference for the same stall:
API Error: The response stopped arriving. The response above may be incomplete.

# when nothing complete arrived at all:
Streaming response ended before any complete data was received. Retrying without
streaming. If this keeps happening, check any proxy or gateway between Claude Code
and your model provider.

Causas y soluciones de un vistazo

CausaSolución
La conexión permaneció abierta, pero dejó de entregar datos, y el mecanismo de vigilancia de inactividad del streaming de Claude Code la cancelóResponde «continuar». Si las pausas largas son legítimas en tu conexión, aumenta CLAUDE_STREAM_IDLE_TIMEOUT_MS en lugar de desactivar el mecanismo de vigilancia.
La conexión se interrumpió, el ordenador entró en suspensión o el servidor devolvió un error a mitad de la respuestaResponde «continuar»; se conserva la parte completada de la respuesta. Si se repite, comprueba la VPN, los cambios entre Wi‑Fi y datos móviles y la configuración de suspensión.
Un proxy o una puerta de enlace intermedia almacenó en búfer, truncó o rechazó el flujo; por ejemplo, una solicitud cuyo cuerpo superó su límite de tamañoHaz una prueba sin ese componente. Aumenta el límite de tamaño del cuerpo y el tiempo de espera de lectura del proxy, y desactiva el almacenamiento en búfer de respuestas para la ruta de la API.
Comenzó justo después de una actualización de Claude CodeAnota la versión en /status. Un informe de julio de 2026 midió el mensaje de detención en un 0 % en 2.1.210 y entre un 3,0 y un 4,4 % en 2.1.217–2.1.218 en el mismo equipo.

Responde primero «continuar»

Claude Code conserva el texto y las llamadas a herramientas completadas antes del fallo y añade el aviso. En una sesión interactiva, lee lo recibido y responde «continuar»: el turno se reanuda desde ahí. En una ejecución no interactiva (claude -p), Claude Code muestra el último bloque de texto completado seguido del aviso; reanuda esa sesión y envía «continuar». Si ocurre una vez, no es necesario cambiar nada más.

Distingue los mensajes

La referencia de errores de Claude Code enumera las formulaciones de respuesta incompleta según la causa: error del servidor a mitad de la respuesta, pérdida de conexión a mitad de la respuesta, suspensión del ordenador a mitad de la respuesta, la respuesta dejó de llegar (la detención), parte de la respuesta nunca llegó y el flujo de respuesta tenía un formato incorrecto. Los informes de julio de 2026 citan una formulación anterior para la detención: «La respuesta se detuvo a mitad del flujo». El mensaje independiente «El flujo de respuesta terminó antes de recibir datos completos» corresponde al caso en que no llegó ningún dato completo, por lo que Claude Code reintenta sin streaming en lugar de conservar una respuesta parcial.

Ajusta el mecanismo de vigilancia; no lo desactives

Claude Code utiliza cuatro temporizadores que interrumpen un flujo cuando deja de recibir datos, de modo que una conexión inactiva falle y se reintente en lugar de quedarse bloqueada: un plazo para recibir el primer byte, un temporizador de vigilancia a nivel de eventos (300 segundos), un temporizador de vigilancia a nivel de bytes (180 segundos en la API directa de Anthropic, 300 segundos en los demás casos, incluido el uso de un ANTHROPIC_BASE_URL personalizado) y, en algunos proveedores, un tiempo de espera de cinco minutos por inactividad del cuerpo de la respuesta. CLAUDE_STREAM_IDLE_TIMEOUT_MS configura ambos temporizadores de vigilancia; los valores inferiores a cinco minutos se elevan a cinco minutos y el temporizador de vigilancia a nivel de bytes tiene un límite de 30 minutos. Inclúyelo en el bloque env de settings.json para que también se aplique a los agentes en segundo plano:

~/.claude/settings.json
{
  "env": {
    "CLAUDE_STREAM_IDLE_TIMEOUT_MS": "600000"
  }
}

Detrás de un proxy o una puerta de enlace, haz una prueba sin él

Cuando se repita el mensaje de reintento sin streaming, elimina temporalmente ese salto: desactiva HTTPS_PROXY durante una sola sesión o establece NO_PROXY="*", y ejecuta la misma tarea. Si se detiene, ese salto es la causa. Los culpables habituales son un límite de tamaño del cuerpo de la solicitud que las sesiones largas superan, el almacenamiento en búfer de respuestas que convierte un flujo activo en un silencio prolongado y un tiempo de espera de lectura inferior a las pausas de reflexión del modelo. Ten en cuenta que el plazo para el primer byte no se ejecuta cuando ANTHROPIC_BASE_URL apunta a una puerta de enlace, pero el mecanismo a nivel de byte sí.

Si llamas a través de Kunavo

Kunavo es una de las puertas de enlace a las que se refiere ese mensaje, así que esto es lo que hace en /v1/messages, el endpoint que Claude Code utiliza. El flujo ascendente se retiene hasta que produce su primer evento de contenido; un error ascendente o un flujo vacío antes de ese punto hacen fallar el intento, que se reintenta en otro canal cuando el modelo dispone de uno, o se devuelve como un error HTTP; nunca como un flujo 200 que termine sin contenido. Una detención después de que haya comenzado el contenido no es algo que una puerta de enlace pueda reintentar, y el mecanismo de vigilancia y «continuar» de Claude Code son las herramientas adecuadas. Cómo terminan los flujos en el lado compatible con OpenAI y cómo distinguir una respuesta completa de una truncada se explica en Errores de transmisión de la API de LLM.

Preguntas frecuentes

¿Qué significa «La respuesta anterior puede estar incompleta» en Claude Code?

La respuesta transmitida se detuvo después de que hubiera llegado una parte: por una detención, una conexión interrumpida, un error del servidor o la suspensión del ordenador. Claude Code conserva el texto y las llamadas a herramientas completadas y añade el aviso. Responde «continuar» y el turno se reanuda desde lo recibido.

¿«La respuesta se detuvo a mitad del flujo» es lo mismo que «La respuesta dejó de llegar»?

Describen el mismo caso: la conexión permaneció abierta, pero dejó de entregar datos hasta que un mecanismo de vigilancia del streaming la canceló. La referencia de errores actual de Claude Code utiliza «La respuesta dejó de llegar»; los informes presentados en julio de 2026 citan «La respuesta se detuvo a mitad del flujo».

¿Por qué Claude Code dice «Reintentando sin streaming»?

Porque el flujo terminó antes de recibir datos completos, así que no había nada que conservar. Claude Code vuelve a enviar la misma solicitud sin streaming. Si el mensaje sigue apareciendo, comprueba el proxy o la puerta de enlace entre Claude Code y el proveedor; los límites de tamaño del cuerpo, el almacenamiento en búfer y los tiempos de espera de lectura son las causas habituales.

¿Debo desactivar el mecanismo de vigilancia del streaming?

No. Los mecanismos de vigilancia existen para que una conexión muerta falle y se reintente en lugar de mantener la sesión bloqueada indefinidamente. Si tu conexión permanece legítimamente inactiva durante largos periodos, aumenta CLAUDE_STREAM_IDLE_TIMEOUT_MS (los valores inferiores a cinco minutos se elevan a cinco minutos) en lugar de establecer CLAUDE_ENABLE_STREAM_WATCHDOG o CLAUDE_ENABLE_BYTE_WATCHDOG en 0.

¿Usar una puerta de enlace con ANTHROPIC_BASE_URL hace que esto sea más probable?

Cada salto entre Claude Code y el proveedor es otro lugar donde un flujo puede almacenarse en búfer, cortarse o agotar el tiempo de espera, así que haz una prueba sin él cuando los mensajes se repitan. El mecanismo de vigilancia a nivel de byte también se ejecuta en conexiones mediante puerta de enlace; el plazo para el primer byte no se ejecuta cuando ANTHROPIC_BASE_URL pasa por una puerta de enlace.

Guías relacionadas

Encontrarás más detalles sobre el significado de los errores en referencia de errores; obtener una clave lleva un minuto mediante registro y la guía de autenticación.