“Streaming interrupted. Waiting for the complete message” appare quando la connessione che trasmette la risposta di ChatGPT al browser si interrompe prima della fine. Quasi mai dipende da ciò che hai scritto: le cause abituali sono il carico lato OpenAI, un collegamento instabile, un'estensione del browser o una conversazione diventata troppo lunga. Rigenerare risolve la maggior parte dei casi; quando non basta, un solo controllo dello stato ti dice se il problema dipende davvero da te.
L’errore
Streaming interrupted. Waiting for the complete message...
(related wording for the same failure: "Error in message stream",
"Hmm...something seems to have gone wrong." The symptom is the same —
the answer stops partway and never completes.)Cause e soluzioni in breve
| Causa | Soluzione |
|---|---|
| Carico o incidente lato OpenAI. Colpisce contemporaneamente tutti i piani, inclusi Plus e Pro, ed è la causa più comune quando l'errore si ripete ogni pochi minuti. | Controlla status.openai.com. Durante un incidente nulla dalla tua parte modifica il risultato: la soluzione è aspettare. |
| Una connessione instabile: un passaggio tra reti Wi-Fi, una VPN o un proxy aziendale, oppure un segnale mobile debole. Lo streaming mantiene aperta una connessione di lunga durata, quindi si interrompe dove i normali caricamenti delle pagine resistono. | Disattiva la VPN o il proxy e riprova con un collegamento diverso (dal Wi-Fi ai dati mobili o viceversa). |
| Ambiente del browser: un'estensione che si inserisce nella pagina, una cache obsoleta o una sessione scaduta. | Riprova in una finestra privata. Se funziona, la causa è un'estensione o la cache: disattiva le estensioni, cancella i dati del sito e accedi di nuovo. |
| La conversazione è troppo lunga o gli allegati sono troppo pesanti. Una conversazione molto lunga viene reinviata a ogni turno, quindi le risposte richiedono più tempo e hanno maggiori probabilità di interrompersi. | Porta i punti chiave in una nuova chat. Dividi i file grandi invece di allegarli per intero. |
I tre passaggi dei 90 secondi
Rigenera la risposta, ricarica la pagina (se sei sul mobile, chiudi completamente l'app e riaprila), poi esci dall'account e accedi di nuovo. Una connessione interrotta una tantum si risolve con uno di questi tre passaggi, e la maggior parte dei casi è occasionale. Se si interrompe sempre nello stesso punto, è un segnale che la causa è una di quelle specifiche riportate sotto, non un'interruzione temporanea.
Stabilisci se dipende davvero da te
Questo è il passaggio che le altre liste di soluzioni saltano ed è quello che fa risparmiare più tempo. Apri status.openai.com. Se è segnalato un incidente, nessuna impostazione sul tuo dispositivo cambierà qualcosa e l'unica soluzione è aspettare. Se non è segnalato nulla, la causa è locale e il passaggio successivo la isola. Farlo prima di iniziare a modificare le impostazioni evita di passare venti minuti a svuotare la cache per un'interruzione del servizio.
Isola la causa locale dall'esterno verso l'interno
Esamina i livelli in quest'ordine, perché ciascuno esclude tutti quelli precedenti: (1) disattiva VPN e proxy; (2) apri una finestra privata, che rimuove estensioni e cache in un solo passaggio; (3) prova un browser o dispositivo diverso; (4) cambia rete. Il livello in cui ricomincia a funzionare è la causa. Se l'errore appare solo nelle conversazioni lunghe, nessuno dei quattro è il problema: sposta i punti chiave in una nuova chat.
Per gli sviluppatori: la stessa interruzione nell'API
Chiamando l'API con stream: true, questo problema arriva come una connessione Server-Sent Events che termina senza finish_reason. Lo stato HTTP è 200 — funzionava quando sono stati inviati gli header —, quindi i soli controlli del codice di stato non lo rileveranno; sotto carico vedrai anche 429 e 529 overloaded_error. Tre accorgimenti lo rendono gestibile: (1) tratta uno stream terminato senza finish_reason come ritentabile, non come una risposta completata; (2) ritenta 429, 500 e 529 con backoff esponenziale più jitter; (3) se sei dietro un proxy, controlla il suo timeout di inattività e disattiva il buffering delle risposte — un proxy che esegue il buffering trasforma uno stream funzionante in un lungo blocco. Riproduci prima il problema senza proxy:
# Stream directly, no proxy in the path, and watch where it stops.
curl -N https://api.kunavo.com/v1/chat/completions \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","stream":true,
"max_tokens":300,
"messages":[{"role":"user","content":"count slowly from 1 to 20"}]}'Se chiami tramite Kunavo
Kunavo è un gateway per API di IA e gli stream interrotti sono una condizione che è progettato per assorbire, non un'eccezione. Quando un modello ha configurato più di un canale upstream e il primo tentativo fallisce, la richiesta viene ritentata su un altro canale nella stessa chiamata, quindi un problema temporaneo a monte appare come un successo leggermente più lento invece di un errore. Le richieste fallite non vengono mai fatturate. Poiché GPT e Claude sono raggiungibili con una sola chiave, un modello sovraccarico può essere aggirato cambiando il nome del modello anziché l'integrazione. Il pattern di retry e backoff per il caso dello streaming è descritto in Errori di streaming delle API LLM.
Domande frequenti
“streaming interrupted, waiting for the complete message” è colpa mia?
Quasi mai. Il messaggio significa che la connessione che trasportava la risposta è stata interrotta prima che la risposta finisse. Ciò che hai scritto non lo provoca. Le cause sono il carico lato OpenAI, una rete instabile, un'estensione del browser o una sessione obsoleta, oppure una conversazione diventata abbastanza lunga da far scadere le risposte.
E se rigenerare non risolve il problema?
Controlla prima status.openai.com: durante un incidente nulla di locale aiuta. Se non c'è alcun incidente, apri una finestra privata su una rete diversa: questo singolo test rimuove contemporaneamente estensioni, cache e il tuo collegamento abituale. Se lì funziona, reinserisci ogni elemento finché il problema non ricompare. Se non funziona da nessuna parte e solo in una conversazione lunga, sposta i punti chiave in una nuova chat.
Succede anche con altre chat di IA?
La formulazione è quella di ChatGPT, ma qualsiasi assistente che trasmetta le risposte in streaming può interrompersi allo stesso modo. Claude mostra un messaggio che indica di non essere riuscito a completare la risposta; in una chiamata diretta all'API appare come uno stream Server-Sent Events che termina senza un finish_reason o, sotto carico, come un 529 overloaded_error.
Perché l'errore compare più spesso nelle conversazioni lunghe?
A ogni turno viene reinviato l'intero thread, quindi una conversazione lunga implica una generazione più lunga mantenuta su una singola connessione. Più a lungo rimane aperta la connessione, maggiori sono le probabilità che un timeout del proxy, un passaggio di rete o un problema momentaneo del servizio upstream la interrompa. In genere, avviare una nuova chat con un riepilogo degli elementi importanti migliora la situazione più di qualsiasi impostazione del browser.
Mi viene addebitato un costo quando uno streaming viene interrotto?
Negli abbonamenti ChatGPT non esiste un addebito per messaggio, quindi non si perde nulla oltre al tempo. Nell'API, la fatturazione segue i token effettivamente prodotti dal provider, quindi uno streaming che termina in anticipo costa meno di uno completo — e su Kunavo una richiesta che fallisce completamente non viene fatturata affatto.
Guide correlate
- Errori di streaming LLM — interruzioni SSE, stream bloccati e utilizzo mancante
- Errore Claude API 529 overloaded_error — cos’è e come superarlo
- Timeout delle richieste Claude API e «lo streaming è fortemente consigliato» — la regola dei 10 minuti
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.