Torna alle guide
Risoluzione dei problemi·30 settembre 2026·6 min di lettura

Claude Code “Risposta bloccata a metà dello streaming” e “La risposta in streaming è terminata prima che venissero ricevuti dati completi” — cosa interrompe lo stream

Entrambi i messaggi indicano che la risposta trasmessa dal modello si è interrotta prima di essere completa. “La risposta sopra potrebbe essere incompleta” viene stampato quando parte della risposta è arrivata e poi lo stream si è bloccato, interrotto o danneggiato; Claude Code conserva ciò che è arrivato e rispondendo continue riprende il turno. “La risposta in streaming è terminata prima che venissero ricevuti dati completi” significa che non è arrivato nulla di utilizzabile, quindi Claude Code ripete la stessa richiesta senza streaming — e quando continua a succedere, la causa è solitamente un proxy o un gateway tra Claude Code e il provider del modello, come indica il messaggio stesso.

Ultima revisione: .

Entrambi i messaggi indicano che la risposta trasmessa dal modello si è interrotta prima di essere completa. “La risposta sopra potrebbe essere incompleta” viene stampato quando parte della risposta è arrivata e poi lo stream si è bloccato, interrotto o danneggiato; Claude Code conserva ciò che è arrivato e rispondendo continue riprende il turno. “La risposta in streaming è terminata prima che venissero ricevuti dati completi” significa che non è arrivato nulla di utilizzabile, quindi Claude Code ripete la stessa richiesta senza streaming — e quando continua a succedere, la causa è solitamente un proxy o un gateway tra Claude Code e il provider del modello, come indica il messaggio stesso.

L’errore

stampato da 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.

Cause e soluzioni in breve

CausaSoluzione
La connessione è rimasta aperta ma ha smesso di consegnare dati e il watchdog di inattività dello streaming di Claude Code l'ha interrottaRispondi continue. Se le pause prolungate sono normali sulla tua connessione, aumenta CLAUDE_STREAM_IDLE_TIMEOUT_MS invece di disattivare il watchdog.
La connessione è caduta, il computer è entrato in sospensione oppure il server ha restituito un errore durante la rispostaRispondi continue; la parte completata della risposta viene conservata. Se si ripete, controlla VPN, passaggi tra Wi-Fi e impostazioni di sospensione.
Un proxy o gateway intermedio ha memorizzato nel buffer, troncato o rifiutato lo stream — per esempio a causa di un corpo della richiesta superiore al limiteEsegui una prova senza di esso. Aumenta il limite delle dimensioni del corpo e il timeout di lettura del proxy e disattiva il buffering delle risposte per il percorso API.
È iniziato subito dopo un aggiornamento di Claude CodeAnnota la versione in /status. Un report di luglio 2026 ha misurato il messaggio di blocco allo 0% su 2.1.210 e al 3,0–4,4% su 2.1.217–2.1.218 sulla stessa macchina.

Rispondi prima continue

Claude Code conserva il testo e le chiamate agli strumenti completate prima dell'errore e aggiunge l'avviso. In una sessione interattiva, leggi ciò che è arrivato e rispondi continue: il turno riprende da lì. In un'esecuzione non interattiva (claude -p), Claude Code stampa l'ultimo blocco di testo completato seguito dall'avviso; riprendi quella sessione e invia continue. Se succede una volta, non è necessario cambiare altro.

Distingui i messaggi

Il riferimento agli errori di Claude Code elenca le formulazioni relative alla risposta incompleta in base alla causa: errore del server durante la risposta, connessione persa durante la risposta, computer entrato in sospensione durante la risposta, risposta che ha smesso di arrivare (il blocco), parte della risposta mai arrivata e stream della risposta malformato. I report di luglio 2026 citano una formulazione precedente per il blocco, “Risposta bloccata a metà dello streaming”. Il messaggio distinto “La risposta in streaming è terminata prima che venissero ricevuti dati completi” indica il caso in cui non sono arrivati dati completi, motivo per cui Claude Code riprova senza streaming invece di conservare una risposta parziale.

Regola il watchdog, non disattivarlo

Claude Code utilizza quattro timer che interrompono uno stream quando non arrivano più dati, così una connessione inattiva termina con un errore e viene ritentata anziché restare bloccata: un limite di tempo per la ricezione del primo byte, un watchdog a livello di eventi (300 secondi), un watchdog a livello di byte (180 secondi sull'API diretta di Anthropic, 300 secondi negli altri casi, anche con un ANTHROPIC_BASE_URL personalizzato) e, presso alcuni provider, un timeout di cinque minuti per l'inattività del corpo della risposta. CLAUDE_STREAM_IDLE_TIMEOUT_MS imposta entrambi i watchdog; i valori inferiori a cinque minuti vengono portati a cinque minuti e il watchdog a livello di byte è limitato a 30 minuti. Inseriscilo nel blocco env di settings.json affinché venga applicato anche agli agenti in background:

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

Dietro un proxy o gateway, prova senza

Quando il messaggio di nuovo tentativo senza streaming si ripete, elimina una volta il passaggio intermedio: annulla HTTPS_PROXY per una singola sessione oppure imposta NO_PROXY="*" ed esegui la stessa attività. Se il problema scompare, il passaggio intermedio ne è la causa. I colpevoli usuali sono un limite delle dimensioni del corpo della richiesta che le sessioni lunghe superano, il buffering delle risposte che trasforma uno stream attivo in un lungo silenzio e un timeout di lettura più breve delle pause di elaborazione del modello. Nota che la scadenza del primo byte non viene eseguita quando ANTHROPIC_BASE_URL punta a un gateway, mentre il watchdog a livello di byte sì.

Se chiami tramite Kunavo

Kunavo è uno dei gateway a cui si riferisce quel messaggio, quindi questo è ciò che fa su /v1/messages, l'endpoint chiamato da Claude Code. Lo stream upstream viene trattenuto finché non produce il primo evento di contenuto; un errore upstream o uno stream vuoto prima di quel punto fa fallire il tentativo, che viene ritentato su un altro canale quando il modello ne ha uno, oppure restituito come errore HTTP — mai come uno stream 200 che termina senza contenuto. Un blocco dopo l'inizio del contenuto non è qualcosa che un gateway possa ritentare; per questo gli strumenti corretti sono il watchdog e continue di Claude Code. Il modo in cui terminano gli stream sul lato compatibile con OpenAI e come distinguere una risposta completa da una troncata è spiegato in Errori di streaming delle API LLM.

Domande frequenti

Cosa significa “La risposta sopra potrebbe essere incompleta” in Claude Code?

La risposta trasmessa si è interrotta dopo che ne era arrivata una parte — a causa di un blocco, una connessione caduta, un errore del server o della sospensione del computer. Claude Code conserva il testo e le chiamate agli strumenti completate e aggiunge l'avviso. Rispondi continue e il turno riprende da ciò che è arrivato.

“Risposta bloccata a metà dello streaming” equivale a “La risposta ha smesso di arrivare”?

Descrivono lo stesso caso: la connessione è rimasta aperta ma ha smesso di consegnare dati finché un watchdog dello streaming non l'ha interrotta. Il riferimento attuale agli errori di Claude Code usa “La risposta ha smesso di arrivare”; i report presentati a luglio 2026 citano “Risposta bloccata a metà dello streaming”.

Perché Claude Code dice “Nuovo tentativo senza streaming”?

Perché lo stream è terminato prima che venissero ricevuti dati completi, quindi non c'era nulla da conservare. Claude Code invia nuovamente la stessa richiesta senza streaming. Se il messaggio continua a comparire, controlla il proxy o il gateway tra Claude Code e il provider — i limiti delle dimensioni del corpo, il buffering e i timeout di lettura sono le cause usuali.

Devo disattivare il watchdog dello streaming?

No. I watchdog esistono affinché una connessione morta fallisca e venga ritentata invece di mantenere la sessione bloccata indefinitamente. Se la connessione rimane legittimamente inattiva per lunghi periodi, aumenta CLAUDE_STREAM_IDLE_TIMEOUT_MS (i valori inferiori a cinque minuti vengono portati a cinque minuti) invece di impostare CLAUDE_ENABLE_STREAM_WATCHDOG o CLAUDE_ENABLE_BYTE_WATCHDOG su 0.

L'uso di un gateway con ANTHROPIC_BASE_URL rende più probabile il problema?

Ogni passaggio tra Claude Code e il provider è un ulteriore punto in cui uno stream può essere memorizzato nel buffer, interrotto o sottoposto a timeout; quando i messaggi si ripetono, prova quindi senza quel passaggio. Il watchdog a livello di byte viene eseguito anche sulle connessioni al gateway; la scadenza del primo byte non viene eseguita quando ANTHROPIC_BASE_URL passa attraverso un gateway.

Guide correlate

Ulteriori dettagli sul significato degli errori sono disponibili in riferimento agli errori; ottenere una chiave richiede un minuto tramite registrazione e la guida all’autenticazione.