Home → Assistenza

socket hang up a metà di una risposta in streaming

La connessione TCP è stata chiusa prima che lo stream finisse. Nulla nel contenuto dice chi l'ha chiusa, quindi la distinzione che ti serve è se è arrivato un finish_reason: senza, considera la risposta incompleta e non metterla in cache.

Cosa vedi

Perché succede

Gli stream lunghi attraversano più infrastruttura delle richieste brevi: la tua rete, eventuali proxy, il bordo della rete del provider e l'host del modello. Un timeout di inattività in qualsiasi punto di questa catena chiude la connessione, e il client lo segnala come reset e non come errore HTTP, perché la risposta HTTP era già iniziata con un 200.

Le reti mobili e la sospensione del portatile producono la stessa firma. Così come un load balancer con un timeout di inattività più breve del tempo di riflessione del modello, ed è per questo che i modelli di ragionamento ci incappano più di quelli veloci.

Uno stream che termina con un finish_reason corretto e poi dà errore è un'altra cosa: la risposta è completa ed è fallita solo la chiusura. Quella si può usare tranquillamente.

Come risolvere

  1. Usa finish_reason come segnale di completamentoNon considerare «lo stream è finito» come un successo. Segna una risposta come completa solo se è arrivato un finish_reason; altrimenti ritenta o mostrala come troncata.
  2. Ritenta la richiesta, non lo streamIn una risposta in streaming non esiste un punto di ripresa. Ritenta dall'inizio, idealmente con un max_tokens più basso così il tentativo successivo finisce prima.
  3. Alza insieme i timeout del client e del proxyAlzare solo il timeout del client non serve se un proxy davanti chiude prima. Entrambi devono superare la risposta più lenta che ti aspetti.
Uno stream che muore a metà viene comunque addebitato per i token generati: il lavoro è stato fatto. Il log di utilizzo di APICLAN mostra esattamente quanti, ed è così che distingui una risposta finita a metà da una che non è mai iniziata.

Articoli correlati

Unexpected token '<' quando chiami un'API compatibile con OpenAI401 invalid API key: quando la chiave sembra giusta ma continua a fallire

Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.