The answer ends mid-word with no exceptionNo [DONE] marker in the raw streamWorks on short answers, fails on long oneschunked encoding ended prematurely / IncompleteReadRetrying produces a different cut-off point each timeStreaming-Antworten legen sich auf 200 OK fest, sobald das erste Byte rausgeht. Alles danach ist Body. Stirbt die Verbindung bei Token 900 von 1200, hat der Client schon eine erfolgreiche Statuszeile gesehen und meldet keinen Fehler – es sei denn, er prüft zufällig die Endmarkierung des Streams.
Deshalb wirkt der Fehler zufällig. Kurze Antworten werden innerhalb des Fensters fertig, das die schwächste Station zulässt; lange nicht. Die Abbruchstelle wandert, weil sie vom Timing abhängt, nicht vom Inhalt.
Meist sind Leerlauf-Timeouts von Proxys die Ursache, und die vertragen sich schlecht mit Reasoning-Modellen: In einer langen Denkphase werden gar keine Tokens gesendet, also kann eine Zwischenstation, die Stille statt Gesamtdauer misst, die Verbindung für tot halten, während das Modell noch nachdenkt.
Lesen Sie den rohen Stream statt des geparsten SDK-Objekts und schauen Sie aufs Ende:
curl -N -s 'YOUR_BASE_URL/chat/completions' \
-H 'Authorization: Bearer YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"model":"YOUR_MODEL","stream":true,
"messages":[{"role":"user","content":"Count slowly from 1 to 400."}]}' \
| tail -5
Ein vollständiger Stream endet mit einem Chunk mit "finish_reason":"stop", gefolgt von data: [DONE]. Ist die letzte Zeile ein gewöhnliches Content-Delta, wurde der Stream gekappt.
[DONE] oder einen Chunk mit nicht-leerem finish_reason gesehen haben. Ohne eins von beiden behandeln Sie das Ergebnis als fehlgeschlagen, nicht als kurz. Diese eine Änderung macht das Problem sichtbar.finish_reason und [DONE] genau so ankommen, wie der Anbieter sie gesendet hat. Die Einrichtung für jeden Client steht im Schnellstart.Zuletzt geprüft am 2026-10-01. Geschrieben aus Problemen, die auf einem laufenden OpenAI-kompatiblen Gateway diagnostiziert wurden – nicht von anderen Seiten zusammengetragen.