“API Error: The response stopped arriving” é o aviso de que, no meio de uma resposta, os dados pararam de chegar embora a conexão continuasse aberta, e o próprio temporizador de monitoramento do Claude Code encerrou essa conexão. A saída concluída até ali continua na tela. Em uma sessão interativa, basta responder continue para retomar a partir do último ponto concluído.
API Error: The response stopped arriving. The response above may be incomplete.
Antes da v2.1.227, essa mesma mensagem aparecia como Response stalled mid-stream. A referência oficial de erros registra a mudança de nome, e o que acontece é exatamente o mesmo. Ao procurar informações ou relatos de bugs escritos com a mensagem antiga, pesquise pelas duas formas.
Comece pelo que vem depois de “API Error:”
As mensagens de “parou” e “caiu” mudam conforme a causa
Depois que a saída começou, os dados pararam com a conexão ainda aberta
Depois que a saída começou, a própria conexão caiu
Parou depois do raciocínio, antes de qualquer saída começar
A resposta terminou sem dados utilizáveis e foi reenviada sem streaming
Índice
- 1. O que a mensagem significa: não é queda, é “silêncio”
- 2. Renomeada de “Response stalled mid-stream” na v2.1.227
- 3. Diferenças em relação a mensagens parecidas
- 4. O que acontece com o trabalho feito até ali
- 5. Causas: o que a documentação oficial diz e o que foi relatado
- 6. O que fazer quando a resposta para
- 7. Como confirmar que resolveu
- 8. Informações para guardar ao relatar
- 9. O que está confirmado e o que não está
- 10. Resumo
- FAQ
1. O que a mensagem significa: não é queda, é “silêncio”
A referência oficial de erros do Claude Code explica que essa mensagem aparece quando a conexão continuou aberta, mas deixou de entregar dados, e por isso o monitor de inatividade do streaming (idle watchdog) a encerrou. Não é o corpo de um erro devolvido pela API: é uma nota que o próprio Claude Code, que estava recebendo a resposta, acrescenta.
Mesmo quando a resposta “para no meio”, o Claude Code usa textos diferentes conforme a causa. A documentação oficial lista as quatro mensagens abaixo, todas terminando com “The response above may be incomplete.” (a resposta acima pode 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.
A primeira linha corresponde ao servidor devolver sobrecarga ou um erro 5xx no meio da resposta; a segunda, à queda da conexão; a terceira, ao computador entrar em suspensão durante a resposta. Só a quarta, a mensagem deste artigo, indica que os dados pararam de chegar sem que houvesse erro nem queda.
Quem encerra são quatro temporizadores de monitoramento
Segundo a documentação oficial de configuração de rede, o Claude Code tem quatro temporizadores que encerram streams que ficaram em silêncio. Eles existem para que uma conexão morta não fique travada para sempre e possa ser tratada como falha. Depois que a resposta começa a fluir, os que valem são os três primeiros da tabela abaixo.
| Temporizador | Quando encerra | Tempo padrão |
|---|---|---|
| Monitor em nível de bytes | Nenhum byte chega pela conexão (nem mesmo os keep-alives do SSE) | 180 segundos com conexão direta à API da Anthropic; 300 segundos nos demais casos |
| Monitor em nível de eventos | Nenhum evento da resposta pode ser lido | 300 segundos (todos os provedores) |
| Tempo limite de inatividade do corpo | Nenhum byte chega por 5 minutos | 5 minutos (exceto na API direta da Anthropic e no Claude Platform on AWS) |
| Prazo do primeiro byte | Depois do envio, nenhum cabeçalho da resposta chega | 180 segundos na API direta; 300 segundos nos demais casos (mais 1 segundo a cada 32 KB do corpo). Gera No response from API, não esta mensagem |
Com conexão direta à API da Anthropic, a referência é o monitor em nível de bytes, de 180 segundos. Ou seja, até essa mensagem aparecer, a tela parece parada por alguns minutos. Segundo a documentação oficial, quando a requisição continua viva mas passa 20 segundos sem receber dados, antes aparece o aviso abaixo. Ele significa “ainda não falhou”, e a contagem regressiva vai até o momento do encerramento (antes da v2.1.185, eram 10 segundos e o texto era outro).
Waiting for API response · will retry in … · check your network
Se os dados voltarem, o aviso some sozinho. A mensagem deste artigo aparece quando ele não some, o encerramento acontece, e parte da saída já estava concluída.
2. Renomeada de “Response stalled mid-stream” na v2.1.227
Logo depois de explicar as quatro mensagens, a referência oficial de erros diz que, antes da v2.1.227, Connection lost mid-response aparecia como Connection closed mid-response e The response stopped arriving aparecia como Response stalled mid-stream. Na mesma versão, a mensagem de antes do início da saída também foi trocada.
| Mensagem antes da v2.1.227 | Mensagem atual | Artigo neste site |
|---|---|---|
Response stalled mid-stream | The response stopped arriving | Este artigo |
Response stalled while thinking, before producing a response | The response stalled before a response was produced | Seção 3 deste artigo |
Connection closed mid-response | Connection lost mid-response | Artigos sobre closed e lost (no texto abaixo) |
Casos em que a mensagem antiga, Response stalled mid-stream, apareceu junto com o modelo repetindo a mesma palavra sem parar estão reunidos no artigo sobre Response stalled mid-stream e o loop infinito de “court”. Do lado da conexão que cai, os relatos da época da mensagem antiga estão no artigo sobre Connection closed mid-response, e a mensagem renomeada é explicada no artigo sobre Connection lost mid-response.
Serve de pista da versão
Se aparecer stopped arriving, o Claude Code é da v2.1.227 ou posterior. Se aparecer stalled mid-stream, é uma versão anterior.
Não consta no CHANGELOG
Em 22 de setembro de 2026, lemos a entrada da v2.1.227 no CHANGELOG oficial, e a mudança de texto não estava registrada. A publicação no npm foi em 10 de agosto de 2026 (UTC).
Procure relatos pelas duas mensagens
O mesmo fenômeno foi relatado com dois nomes. Ao pesquisar issues no GitHub, use tanto a mensagem nova quanto a antiga.
Antes da v2.1.222, pode ser um falso alarme
Segundo a documentação oficial, as versões do Claude Code anteriores à v2.1.222 tinham dois tipos de falso alarme. O primeiro: em gateways acessados via ANTHROPIC_BASE_URL ou ANTHROPIC_AWS_BASE_URL, a conexão era encerrada mesmo com os keep-alives do servidor chegando, porque só os eventos legíveis eram contados. O segundo: quando a conexão parava depois de a resposta já ter sido concluída, a nota aparecia mesmo assim e uma resposta completa era tratada como erro. Se claude --version mostrar algo abaixo de 2.1.222, atualize primeiro.
3. Diferenças em relação a mensagens parecidas
A mensagem exibida depende de até onde a resposta tinha avançado quando parou. Organizando a explicação oficial de “Automatic retries” na ordem em que a resposta avança, fica assim:
Quanto mais tarde a parada, mais saída sobra e menos reenvio automático há
① Esperando os cabeçalhos
Os cabeçalhos da resposta não chegam dentro do prazo. Reenvia no máximo 1 vez
No response from API
② Nada concluído ainda
Os cabeçalhos chegaram mas o conteúdo não, ou parou depois do raciocínio e antes da saída. Reenvia no máximo 1 vez, além das 10 tentativas normais; se parar de novo depois do raciocínio, termina com a mensagem abaixo
The response stalled before a response was produced
③ Depois de concluir um bloco
Parou depois de concluir um bloco de texto ou uma chamada de ferramenta (inclusive depois de terminar o raciocínio e começar a escrever). Não reenvia
The response stopped arriving (este artigo)
④ Depois de a resposta terminar
Mantém a resposta completa e encerra o turno normalmente. Nenhuma nota aparece
Sem mensagem (v2.1.222 ou posterior)
O motivo de não reenviar no caso ③ também está na documentação oficial: reenviar a requisição depois de concluir um bloco de texto ou uma chamada de ferramenta poderia executar a mesma chamada de ferramenta duas vezes. Por isso o Claude Code mantém o que foi concluído e, em vez de descartar o turno, acrescenta a nota.
| Mensagem | O que está acontecendo | Saída que sobra e reenvio |
|---|---|---|
The response stopped arriving | Os dados pararam com a conexão ainda aberta | O que foi concluído permanece. Não reenvia |
Connection lost mid-response | A própria conexão caiu | O que foi concluído permanece. Não reenvia |
Server error mid-response | O servidor devolveu sobrecarga ou 5xx no meio | O que foi concluído permanece (v2.1.199 ou posterior). Não reenvia |
The response stalled before a response was produced | Parou duas vezes seguidas depois do raciocínio, antes de a saída começar | Não sobra saída. Aparece depois de 1 reenvio |
No response from API | Nenhum cabeçalho da resposta chegou dentro do prazo | Não sobra saída. Aparece depois de 1 reenvio |
Streaming response ended before any complete data was received | A resposta terminou sem nenhum dado utilizável | Reenvia automaticamente sem streaming (só um aviso) |
A diferença para Connection lost mid-response: “queda ou silêncio”
As duas aparecem depois de parte da saída já ter saído, e têm em comum a saída que permanece e a retomada com continue. O que muda é a forma como a resposta parou. lost significa que a conexão foi perdida: suspeite de uma queda momentânea da sua rede, de uma reconexão da VPN ou de um equipamento no caminho cortando a conexão. stopped arriving significa que a conexão continua, mas nenhum conteúdo passa por ela, e o encerramento só acontece depois de esperar o tempo do temporizador de monitoramento. Por isso, o ajuste dos temporizadores da seção 6 só tem chance de ajudar no caso de stopped arriving.
A diferença para Streaming response ended…: “parou ou terminou vazia”
Segundo a documentação oficial, Streaming response ended before any complete data was received é um aviso de que a resposta terminou sem entregar nenhum dado utilizável. O Claude Code deixa de usar streaming, reenvia a mesma requisição e continua o turno. O aviso aparece só uma vez por sessão, em sessões interativas (antes da v2.1.239, o reenvio era silencioso). A documentação oficial aponta como causa comum um proxy ou gateway no caminho que consome ou transforma o corpo da resposta. Já stopped arriving é uma resposta que chegou até certo ponto e parou, e ela não é reenviada automaticamente.
4. O que acontece com o trabalho feito até ali
Pela explicação oficial, o Claude Code mantém todos os blocos concluídos e, no fim do turno, descarta o último bloco que estava pela metade. É por isso que as últimas frases na tela, ou a última chamada de ferramenta, podem estar faltando. As chamadas de ferramenta que tinham sido concluídas são executadas, e o turno continua a partir dos resultados delas. O que acontece depois da parada varia conforme o ambiente de execução.
Sessão interativa
Leia a resposta que ficou na tela e responda continue: o trabalho segue a partir do último bloco concluído. Se você repetir a instrução desde o início, pode executar de novo operações que já foram feitas.
-p, Agent SDK e sessões na nuvem
Se a resposta interrompida tiver só texto, sem chamadas de ferramenta, o próprio Claude Code pede para continuar. Ele tenta até 3 vezes seguidas, e a nota só aparece quando as tentativas se esgotam (v2.1.246 ou posterior).
Subagentes
Em modo interativo ou não, se a resposta tiver só texto, o subagente é instruído a continuar. Quando essas instruções se esgotam, a nota passa a ser a última mensagem do subagente (v2.1.257 ou posterior).
Hooks
Segundo a documentação oficial de hooks, em um turno que termina com erro da API é executado StopFailure, e não Stop. A saída e o código de saída desse hook são ignorados, então não é possível usar um hook para fazer continue automaticamente.
A saída ao parar com -p e como continuar
Na saída de texto padrão do modo não interativo, o Claude Code imprime o último bloco de texto concluído naquele turno e, em seguida, esta mensagem (antes da v2.1.219, só a mensagem aparecia e a resposta era descartada). Mas, se não sobrar nenhum texto concluído, por exemplo quando a conversa foi compactada no meio do turno e esse texto sumiu, só a mensagem é impressa (acrescentado em 26 de setembro de 2026, após conferir a referência oficial de erros). Com --output-format json ou stream-json, a mensagem vai no campo result. O procedimento oficial é esperar a conexão estabilizar, retomar a sessão e enviar continue.
# Continuar a conversa mais recente
claude -p "continue" --continue
# Continuar indicando o ID da sessão
claude -p "continue" --resume "$session_id"
Sobre a retomada automática por hooks, o autor da Issue #87972 escreve que “na época da mensagem antiga, o hook Stop era executado e dava para continuar automaticamente, mas isso parou de funcionar mais ou menos quando a mensagem foi renomeada”. É uma observação do autor, e a documentação oficial não diz se o comportamento anterior era intencional. Pela documentação oficial atual, um hook pode registrar ou notificar, mas não consegue retomar o turno.
5. Causas: o que a documentação oficial diz e o que foi relatado
Essa mensagem só informa o resultado, “os dados pararam de chegar”; por que pararam não dá para saber pela mensagem. Separamos as informações por grau de certeza.
✅ Fatores que fazem o stream silenciar ou ser encerrado, segundo a documentação oficial e o CHANGELOG
- Mecanismo: os dados pararam com a conexão aberta, e o temporizador de monitoramento a encerrou. Na API direta, a conexão é encerrada depois de 180 segundos sem bytes, keep-alives incluídos
- Falso alarme em gateways: antes da v2.1.222, gateways acessados via
ANTHROPIC_BASE_URLe similares podiam ter a conexão encerrada mesmo com os keep-alives chegando. Gateways acessados pela URL base de um provedor, comoANTHROPIC_BEDROCK_BASE_URL, ficam fora do monitor em nível de bytes - Silêncio durante raciocínios longos: no CHANGELOG, a v2.1.229 diz que passou a enviar keep-alives SSE nas respostas em streaming do gateway durante raciocínios longos, para evitar cortes por inatividade com Vertex ou Bedrock como upstream; a v2.1.257 diz que corrigiu um problema em que, no Bedrock e no Bedrock Mantle com Opus 4.7 ou posterior, a requisição ficava em silêncio durante raciocínios longos não exibidos e a conexão era cortada pelo tempo limite de inatividade
- Recuperação após o encerramento: a v2.1.232 corrigiu um problema em que, em configurações com Bedrock, Vertex e gateways, o tempo limite de inatividade do stream fazia a requisição falhar sem se recuperar
- Buffer do proxy: a explicação oficial das variáveis de ambiente diz que o piso de 5 minutos de
CLAUDE_STREAM_IDLE_TIMEOUT_MSexiste “para absorver raciocínios longos e o buffer de proxies”
A documentação oficial coloca essa mensagem na seção “Server errors” da referência de erros. O início da seção diz que a maioria vem do lado do provedor de inferência, como os serviços da Anthropic, mas, sobre esta mensagem específica, a explicação oficial vai só até o mecanismo acima. A documentação oficial não identifica se a parada acontece na sua rede, em um equipamento no caminho ou no servidor.
🟡 Casos relatados no GitHub com causa ainda não confirmada
Em 22 de setembro de 2026, abrimos e lemos as issues abaixo, que contêm esta mensagem. Todas são relatos ou hipóteses de usuários e, no que lemos, não há resposta pública da Anthropic.
- #88900 (Linux, 2.1.240, sem proxy nem gateway): relato de que a resposta parou depois de chegarem cerca de 0,5 a 2,7 KB e, 180 segundos depois, o monitor em nível de bytes encerrou a conexão. O autor diz que sessões diferentes pararam ao mesmo tempo no mesmo minuto e pede que os logs do servidor sejam verificados
- #90005 (Windows 11, 2.1.246): relato de 33 ocorrências em um único dia, contra 0 nos dias anteriores. O autor mediu largura de banda, perda de pacotes e proxy e os considerou saudáveis, mas ressalva que não fez um teste de conexões mantidas abertas por muito tempo e que não conseguiu descartar cortes por inatividade de um NAT de nível de operadora (CGNAT)
- #89027 (macOS, extensão do VS Code 2.1.238 a 2.1.241): relato de que o log registrou um encerramento “byte-level” e 180000 ms de silêncio. Aconteceu no meio de um WebFetch de um subagente
- #87246 (macOS, 2.1.232): relato que só colou esta mensagem e foi fechado como “not planned” (sem previsão de correção). Um comentário posterior observa que subagentes em segundo plano pararam um atrás do outro com esta mensagem
#88900 e #90005 dizem que a resposta parou sem que houvesse problema aparente na rede local. Mesmo assim, isso não basta para concluir que a causa está no servidor. Como o próprio autor de #90005 escreve, testes de comunicação curtos não reproduzem a situação de “uma conexão que fica aberta por vários minutos e silencia no meio”.
6. O que fazer quando a resposta para
A ordem vai do que dá menos trabalho e mais resultado para o resto. Se aconteceu só uma vez, a etapa 2 resolve.
Confira a saída que sobrou e o estado real do trabalho
As chamadas de ferramenta concluídas foram executadas. Se a parada aconteceu no meio de uma alteração de arquivo ou de um comando, veja primeiro o que mudou com git status ou git diff.
Responda continue
É o procedimento oficial de recuperação: o trabalho continua a partir do último bloco concluído. Se você colar a instrução original de novo, as operações já feitas serão executadas outra vez.
Verifique a versão e atualize
Veja a versão com claude --version e atualize com claude update. Se for anterior à 2.1.222, pode ser o falso alarme da seção 2. Se você usa Bedrock, Vertex ou um gateway, as versões 2.1.229, 2.1.232 e 2.1.257 também trazem correções relacionadas (seção 5).
Isole o caminho da rede
Confira o proxy em uso na linha Proxy de /status. Se o problema parar ao desligar a VPN ou o proxy, trocar de rede ou tirar o gateway (ANTHROPIC_BASE_URL) e conectar diretamente, a causa está no que você removeu.
Encurte cada resposta
Instruções como ler muitos arquivos e depois escrever um relatório longo devem ser divididas entre leitura e escrita. A documentação oficial não cita isso como solução para esta mensagem, mas, no item “Request timed out”, recomenda dividir tarefas longas em instruções menores. Na #87972 também aparece a dica de um usuário: manter cada resposta curta faz a parada acontecer menos.
Consulte a página de status
Veja em status.claude.com se há alguma instabilidade em andamento. Mas o autor de #90005 conta que, no período em que as paradas continuavam, o status dizia que estava tudo normal. Não conclua que o problema é seu só porque a página está verde.
Se o caminho fica em silêncio por muito tempo, aumente o tempo do monitor
Em ambientes em que um proxy ou gateway acumula a resposta, aumentar o monitor em nível de bytes reduz os encerramentos. Coloque a configuração em env no arquivo de configurações, como abaixo. Como as variáveis de ambiente do shell podem não chegar aos agentes em segundo plano, a documentação oficial recomenda o arquivo de configurações em vez de um export no shell.
Exemplo em ~/.claude/settings.json (monitor em nível de bytes com 10 minutos):
{
"env": {
"CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS": "600000"
}
}
| Variável de ambiente | Explicação oficial |
|---|---|
CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS | Tempo só do monitor em nível de bytes. Ajustado para ficar entre 10 segundos e 30 minutos. v2.1.210 ou posterior |
CLAUDE_STREAM_IDLE_TIMEOUT_MS | Tempo dos monitores em nível de bytes e de eventos. Valores abaixo de 5 minutos sobem para 5 minutos; no nível de bytes, o máximo é 30 minutos |
API_FORCE_IDLE_TIMEOUT | Com 0, desliga o tempo limite de inatividade do corpo de 5 minutos; com 1, aplica-o a todos os provedores. Independente dos temporizadores de monitoramento |
CLAUDE_CODE_MAX_RETRIES | Número de novas tentativas (padrão 10). Como esta situação foi projetada para nunca reenviar, aumentar o número não reduz a mensagem |
Desligar o monitoramento não é recomendado
Definir CLAUDE_ENABLE_BYTE_WATCHDOG ou CLAUDE_ENABLE_STREAM_WATCHDOG como 0 desliga o próprio monitor. A documentação oficial explica que esses temporizadores existem “para que uma conexão morta não fique travada, mas falhe e seja tentada de novo”. Desligando, a mensagem some, mas você passa a esperar indefinidamente por uma conexão que realmente parou. E, se os dados do servidor de fato pararam, aumentar o tempo só faz a falha demorar mais.
7. Como confirmar que resolveu
Não dê como resolvido só porque a mensagem não apareceu uma vez. Rode um trabalho do mesmo tamanho e observe estes quatro pontos.
Versão
Com claude --version, veja se a atualização foi aplicada. A versão incluída na extensão da IDE ou no aplicativo desktop pode ser atualizada separadamente da CLI
Aviso de espera
Se Waiting for API response aparece mas some sozinho, o silêncio está sendo curto. A documentação oficial orienta a tratar como problema de rede se ele aparecer em toda tentativa
Log de depuração
Ao iniciar com claude --debug, o log vai para ~/.claude/debug/<session-id>.txt. Os autores de #88900 e #89027 encontraram, no momento do encerramento, uma linha começando com “Streaming idle timeout (byte-level)” (o texto dessa linha não consta na documentação oficial)
Ocorrências no log de conversas
As conversas ficam salvas em JSONL dentro de ~/.claude/projects/. Conte quantas vezes a mensagem apareceu antes e depois de atualizar ou mudar a configuração, e compare. A documentação oficial avisa que o formato é interno e muda a cada versão
# Verificar a versão
claude --version
# Iniciar gravando o log de depuração
claude --debug
# Contar os arquivos de log de conversa que contêm a mensagem (macOS e Linux)
grep -rl "The response stopped arriving" ~/.claude/projects/ | wc -l
# Da mesma forma, contar as linhas que contêm a mensagem (PowerShell)
Get-ChildItem "$HOME\.claude\projects" -Recurse -Filter *.jsonl | Select-String -SimpleMatch "The response stopped arriving" | Measure-Object
Use a contagem como referência. O autor de #90005 conta que, em certo intervalo de 85 minutos, a tela parou 15 vezes, mas só 1 registro ficou no log de conversas. Mesmo que o log de conversas mostre 0, é mais seguro anotar você mesmo quantas vezes a tela parou.
8. Informações para guardar ao relatar
A referência oficial de erros indica quatro canais para quando o problema não se resolve:
- Execute
/feedbackdentro do Claude Code. A transcrição da conversa e a sua descrição são enviadas à Anthropic, e também é possível abrir uma issue no GitHub já preenchida. Em provedores como Bedrock e Vertex, em vez de enviar, o conteúdo é salvo localmente - Execute
claude doctorno shell e veja o diagnóstico da instalação, somente leitura - Consulte instabilidades em status.claude.com
- Procure nas issues existentes no GitHub, pesquisando pela mensagem nova e pela antiga
Modelo de anotações para o relato
- Ambiente
- Resultado de
claude --version/ sistema operacional / onde você usa (CLI no terminal, extensão do VS Code, aplicativo desktop) - Caminho
- API direta ou Bedrock, Vertex ou gateway (
ANTHROPIC_BASE_URL) / se há proxy e VPN - Mensagem
- Texto completo do erro / horário e fuso horário da ocorrência / se
Waiting for API responseapareceu logo antes / se foi na conversa principal ou em um subagente - Frequência
- Quantas vezes por dia e desde quando / se houve atualização ou mudança de configuração nesse dia
- O que você tentou
- O que mudou antes e depois de atualizar, desligar a VPN ou o proxy, trocar de rede e dividir os turnos
9. O que está confirmado e o que não está
✅ Confirmado pela documentação oficial
- Significa que “a conexão continuou aberta, os dados pararam e o temporizador de monitoramento a encerrou”
- Antes da v2.1.227, aparecia como
Response stalled mid-stream - A saída concluída permanece, e a recuperação é com
continue - Não há reenvio, para não executar a mesma chamada de ferramenta duas vezes
- Antes da v2.1.222, havia falsos alarmes em gateways e em paradas depois da conclusão
🟡 Relatado, mas não confirmado
- Para mesmo com a rede local saudável (#88900, #90005)
- Para depois de chegarem alguns KB, em várias sessões ao mesmo tempo (#88900)
- O log de conversas registra menos ocorrências do que a tela (#90005)
- Na época da mensagem antiga, dava para retomar automaticamente com o hook Stop (#87972)
🔴 Não divulgado
- Uma explicação oficial de por que os dados param (não há resposta pública nas issues acima)
- Se a parada está na sua máquina, no caminho ou no servidor
- O motivo da mudança de nome (não consta no CHANGELOG)
10. Resumo
“API Error: The response stopped arriving” indica que, depois de parte da resposta ter chegado, os dados pararam com a conexão ainda aberta e o temporizador de monitoramento do Claude Code a encerrou. É a mesma coisa que Response stalled mid-stream, de antes da v2.1.227, e a saída concluída permanece. Primeiro confira o estado do trabalho e depois responda continue.
Se a mensagem se repetir, tente nesta ordem: atualizar a versão, isolar VPN, proxy e gateway, e encurtar cada resposta. Só em ambientes em que o caminho fica em silêncio por muito tempo vale aumentar o tempo do monitor em nível de bytes. O lugar onde procurar a causa é diferente do de Connection lost mid-response, em que a própria conexão cai, então compare primeiro o texto das mensagens. Outros erros estão reunidos em Erros comuns do Claude Code e como resolvê-los.
FAQ
P. O que significa “API Error: The response stopped arriving”?
R. Significa que, no meio da resposta, os dados pararam de chegar embora a conexão continuasse aberta, e o temporizador de monitoramento do Claude Code encerrou essa conexão. É a mensagem para quando a parada acontece depois de concluir um bloco de texto ou uma chamada de ferramenta, e a saída até ali permanece.
P. É um erro diferente de “Response stalled mid-stream”?
R. É o mesmo. A referência oficial de erros deixa claro que, antes da v2.1.227, esta mensagem aparecia como Response stalled mid-stream. Só o texto mudou; não surgiu um novo tipo de falha.
P. O que respondo para continuar de onde parou?
R. Responda continue. O trabalho segue a partir do último bloco concluído. Se a parada foi no meio de uma operação com arquivos ou de um comando, é mais seguro conferir antes o estado real com git status ou algo parecido.
P. Aumentar o número de novas tentativas faz a mensagem sumir?
R. Não. Nesta situação, o Claude Code foi projetado para nunca reenviar, para não executar a mesma chamada de ferramenta duas vezes. CLAUDE_CODE_MAX_RETRIES vale para falhas que acontecem antes de a saída começar.
P. Qual é a diferença para “Connection lost mid-response”?
R. lost significa que a própria conexão caiu; stopped arriving significa que a conexão continuou, mas os dados pararam de chegar. Nos dois casos a saída concluída permanece e dá para retomar com continue, mas o ajuste do tempo do monitor só tem chance de ajudar no caso de stopped arriving.
Fontes primárias consultadas
- Claude Code — Error reference (documentação oficial): as quatro mensagens de The response above may be incomplete e a mudança de nome na v2.1.227, os falsos alarmes antes da v2.1.222, Automatic retries, o aviso de espera, No response from API, Streaming response ended before any complete data was received, Report an error
- Claude Code — Enterprise network configuration (documentação oficial): os quatro temporizadores de monitoramento e seus tempos padrão, as variáveis de ambiente de configuração, o log de depuração e como passar configurações aos agentes em segundo plano
- Claude Code — Environment variables (documentação oficial): explicação de
CLAUDE_STREAM_IDLE_TIMEOUT_MS,CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MSeAPI_FORCE_IDLE_TIMEOUT - Claude Code — Hooks reference (documentação oficial): StopFailure em turnos que terminam com erro da API
- Claude Code — Run Claude Code programmatically (documentação oficial): retomada com
--continuee--resume - anthropics/claude-code — CHANGELOG (oficial): entradas da v2.1.222, v2.1.227, v2.1.229, v2.1.232, v2.1.246 e v2.1.257
- Issues no GitHub: #88900, #90005, #89027, #87246, #87972 (todas relatos de usuários; verificadas em 22 de setembro de 2026)