Wenn Sie Claude Code eine längere Aufgabe geben, kann es mitten in der Antwort plötzlich hiermit stehen bleiben.

API Error: Connection lost mid-response. The response above may be incomplete.

Suchen Sie genau nach dieser Zeichenfolge, kommt erstaunlich wenig zurück. Der Grund liegt offen: Das ist ein recht neuer Name. Die offizielle Fehlerreferenz von Claude Code schreibt es wörtlich — „Vor v2.1.227 erschien Connection lost mid-response als Connection closed mid-response. Das zugrunde liegende Ereignis gibt es längst; geändert hat sich allein das Wort auf dem Bildschirm, von closed zu lost. Weil das vorhandene Material im Netz unter dem alten Namen geschrieben ist, findet niemand etwas, der nach dem neuen sucht.

Ausgehend von dieser Umbenennung ordnet dieser Artikel (1) was die Meldung genau bedeutet, (2) was jetzt vor dem Bildschirm zu tun ist, (3) warum nicht automatisch erneut versucht wird, (4) wie sich die abreißende Ebene eingrenzen lässt, (5) wie sich das über Umgebungsvariablen einstellen lässt und (6) wie sie sich von den sehr ähnlichen Meldungen unterscheiden lässt — allein anhand der offiziellen Dokumentation und öffentlicher Issues. Wo Schlussfolgerungen einfließen, tragen sie ein Konfidenzlabel.

Kurz gefasst
1. Sofort
Die Ausgabe ist noch da

Was schon auf dem Bildschirm angekommen ist, wurde nicht verworfen. Offiziell gilt: Wer continue antwortet, setzt beim letzten abgeschlossenen Block wieder auf.

2. Zum Namen
Ein umbenanntes closed

Vor v2.1.227 stand dort Connection closed mid-response. Material unter dem alten Namen gilt unverändert weiter.

3. Wenn es sich wiederholt
Die Ebene eingrenzen

Was zu tun ist, hängt davon ab, wo es abreißt: Ihr Rechner, der Weg oder die Serverseite. Es gibt Meldungen, in denen rohes HTTPS durchgeht und allein Claude Code abbricht.

1. Das Erste, was zu tun ist — Ihre Ausgabe ist nicht verloren

Vor jeder Abhilfe klären wir den Punkt, der am häufigsten falsch gelesen wird. Auch wenn diese Meldung erscheint, bleibt alles erhalten, was bereits auf den Bildschirm gestreamt wurde. Es wird nicht verworfen.

Die offizielle Fehlerreferenz erklärt die Familie der Meldungen, die auf „The response above may be incomplete.“ enden, so — schlägt das Streaming fehl, nachdem Claude einen Textblock oder einen Tool-Aufruf abgeschlossen hat, könnte ein erneutes Senden denselben Tool-Aufruf zweimal ausführen; deshalb behält Claude Code das Abgeschlossene und hängt diesen Hinweis an, statt den Turn wegzuwerfen.

Es gibt also nur drei Dinge zu tun.

Schritt 1
Lesen Sie die verbliebene Ausgabe

Claude Code behält jeden Block, der abgeschlossen wurde, verwirft aber den letzten Block, der beim Ende des Turns noch lief. Was fehlt, sind meist die letzten Sätze oder der letzte Tool-Aufruf.

Schritt 2
Antworten Sie continue

Das ist der offizielle Wiederherstellungsschritt selbst. Er setzt beim letzten abgeschlossenen Block auf. Geben Sie die Anweisung nicht von vorn ein — das führt bereits ausgeführte Operationen ein zweites Mal aus.

Schritt 3
Prüfen Sie Operationen mit Nebenwirkungen

Fiel der Abbruch mitten in einen Dateischreibvorgang oder einen Kommandolauf, ist das Protokoll auf dem Bildschirm der Beleg dafür, wie weit es kam. Sehen Sie sich den echten Zustand mit git status an, bevor Sie weitermachen.

Außerhalb interaktiver Sitzungen läuft es von allein weiter. Laut offizieller Referenz fordert Claude Code in nicht interaktiven Sitzungen wie -p-Läufen, dem Agent SDK und Cloud-Sitzungen die Fortsetzung selbst bei Claude an, sofern die unterbrochene Antwort nur Text enthält und keinen Tool-Aufruf — bis zu drei Mal hintereinander. Dieser Hinweis erscheint erst, wenn diese Fortsetzungen aufgebraucht sind. Subagenten setzen auf dieselbe Weise automatisch fort.

2. Die offiziellen Definitionen — vier Meldungen für „mittendrin abgebrochen“

Als Erstes gilt es zu begreifen, dass dieser Wortlaut ein Hinweis ist, den Claude Code selbst schreibt, und nicht der Rumpf einer von der API zurückgegebenen Fehlerantwort. Deshalb variiert Claude Code den Schlusssatz nach Ursache, obwohl das Erlebnis des Abbruchs dasselbe ist. Die offizielle Referenz führt diese vier auf.

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.
Thema dieses Artikels
Connection lost mid-response

Die offizielle Erläuterung ist eine Zeile — die Verbindung ging verloren. Der Stream lief normal, aber die Verbindung, die ihn trug, verschwand.

Ein Fehler auf der Serverseite
Server error mid-response

Mitten im Stream traf eine overloaded- oder 5xx-Antwort ein. Laut offizieller Doku stammt diese Anzeige selbst erst aus v2.1.199; davor wurde die Teilausgabe verworfen und der ganze Turn als Fehler behandelt.

Etwas Lokales
Your computer went to sleep mid-response

Wenn Claude Code erkennt, dass der Rechner während der Antwort geschlafen hat. Nach dem Aufwachen gilt die Verbindung als defekt, und das Lesen wird eingestellt.

Stille, kein Abbruch
The response stopped arriving

Die Verbindung bleibt offen, aber es kommen keine Daten mehr, und der Stream-Watchdog gibt auf. Ein Stillstand statt eines Abbruchs, mit anderer Ursache und anderer Abhilfe.

Lesen Sie zuerst genau, welche der vier Sie erwischt hat. Das Erlebnis des Abbruchs sieht bei allen gleich aus, aber Claude Code hat die Ursache bereits eingegrenzt und den Wortlaut entsprechend gewählt. Steht dort lost, lautet das Urteil, dass die Verbindung verloren ging — nicht, dass der Server ein 5xx zurückgab, und nicht, dass etwas in eine Zeitüberschreitung lief.

3. v2.1.227 hat „closed“ in „lost“ umbenannt

Das ist der Kern dieses Artikels. Direkt nach den vier Erläuterungen setzt die offizielle Fehlerreferenz diesen Hinweis.

„Vor v2.1.227 erschien Connection lost mid-response als Connection closed mid-response, und The response stopped arriving erschien als Response stalled mid-stream.“
offizielle Fehlerreferenz von Claude Code (eigene Übersetzung)

Zwei Zeichenfolgen wurden also im selben Moment ausgetauscht. Als Tabelle ergibt sich diese Zuordnung.

Anzeige vor v2.1.227 Anzeige heute Bedeutung (offiziell)
Connection closed mid-response Connection lost mid-response Die Verbindung ging verloren
Response stalled mid-stream The response stopped arriving Die Verbindung blieb offen, aber es kamen keine Daten mehr
Connection closed while thinking, before producing a response Connection lost before a response was produced Es brach ab, bevor ein einziges Zeichen ausgegeben war (keine Teilausgabe)
Response stalled while thinking, before producing a response The response stalled before a response was produced Es blieb bei offener Verbindung stehen, bevor ein einziges Zeichen ausgegeben war

Beachten Sie, dass die dritte Zeile etwas anderes ist als die Meldung in diesem Artikel. mid-response heißt, dass es abbrach, nachdem bereits Ausgabe erschienen war, before a response was produced heißt, dass es vor dem ersten Zeichen abbrach — im selben Zug umbenannt, aber verschieden in Bedeutung und in dem, was danach geschieht. Der nächste Abschnitt behandelt das.

Was sich ändert, sobald Sie von der Umbenennung wissen

Es gibt drei praktische Wirkungen.

Material unter dem alten Namen funktioniert weiter

Suchen Sie nach „Connection closed mid-response“, und GitHub-Issues wie Erfahrungsberichte tauchen sofort auf. Es ist dasselbe Ereignis, also muss nichts umgedeutet werden.

Es verrät ungefähr, auf welcher Version Sie sind

Steht dort lost, ist dieses Claude Code v2.1.227 oder neuer. Steht dort closed, ist es älter.

Es zählt beim Beurteilen doppelter Issues

Weil dasselbe Phänomen unter zwei Namen gemeldet wird, muss eine Issue-Suche beide Zeichenfolgen verwenden, sonst gehen vorhandene Meldungen verloren.

🟡 Im CHANGELOG steht es nicht. Die Umbenennung ist allein auf der Dokumentationsseite festgehalten; soweit ich es prüfen konnte, verzeichnet der Eintrag zu v2.1.227 im offiziellen CHANGELOG keine Änderung des Wortlauts. Aus Sicht der Anwender änderte sich das Wort einfach eines Tages. Lesen Sie die geänderte Anzeige nicht als einen anderen, neu aufgetretenen Fehler.

⚠️ Vor v2.1.222 kann der Hinweis selbst falsch sein. Die offizielle Fehlerreferenz hält unmissverständlich fest: „Claude Code vor v2.1.222 zeigte diesen Hinweis auch, wenn die Verbindung abriss oder stehen blieb, nachdem die Antwort bereits abgeschlossen war, und meldete den Turn als Fehler, obwohl die Antwort vollständig war“. Mit anderen Worten: Auf älteren Builds erscheint der Fehler, obwohl die gesamte Ausgabe angekommen ist. Ist claude --version kleiner als 2.1.222, aktualisieren Sie, bevor Sie irgendetwas eingrenzen — der Fehler, den Sie sehen, existiert womöglich gar nicht.

4. Warum nicht automatisch erneut versucht wird

Claude Code tut nicht nichts. Laut „Automatic retries“ in der offiziellen Referenz werden vorübergehende Fehler automatisch mit exponentiellem Backoff bis zu zehnmal wiederholt. Wenn diese Meldung dennoch erscheint, heißt das: Claude Code hat entschieden, dass eine Wiederholung hier falsch wäre.

Der Zweig hängt an genau einer Sache: ob Claude bereits etwas abgeschlossen hatte.

Wird wiederholt
Ein Abbruch, bevor etwas abgeschlossen war

Reißt die Verbindung ab, bevor Claude irgendeinen Teil der Antwort abgeschlossen hat, das Denken eingeschlossen, sendet Claude Code die Anfrage mit demselben Backoff erneut, und der Turn läuft weiter. Das gilt auch, wenn bereits Text zu strömen begonnen hatte.

Ist das Denken beendet, aber weder Text noch ein Tool-Aufruf begonnen, sendet es höchstens zweimal in kurzem Abstand erneut, und reißt es weiter ab, beendet es den Turn mit Connection lost before a response was produced.

Wird nicht wiederholt ← dieser Artikel
Ein Abbruch, nachdem ein Block abgeschlossen war

Bricht es ab, nachdem ein Textblock oder ein Tool-Aufruf abgeschlossen wurde (oder nach dem Denken begonnen hat), sendet Claude Code die Anfrage nicht erneut. Das könnte denselben Tool-Aufruf zweimal ausführen.

Stattdessen behält es das Abgeschlossene, führt die abgeschlossenen Tool-Aufrufe aus und setzt den Turn mit deren Ergebnissen fort. Danach gibt es diesen Hinweis aus.

Der Entwurf wirkt unbequem, irrt aber auf der sicheren Seite. Würde automatisch erneut gesendet, könnten Operationen mit Nebenwirkungen — eine Datei schreiben, ein Kommando ausführen — bei jedem Abbruch zweimal laufen. Deshalb lautet die offizielle Empfehlung continue statt eines erneuten Sendens — es ist der einzige Weg, der bereits erledigte Arbeit nicht noch einmal machen lässt.

Was während einer Wiederholung auf dem Bildschirm erscheint

Während eine Wiederholung läuft, erscheint neben dem Spinner ein Countdown: Retrying in Ns · attempt x/y. Das Label beginnt als API error, aber ab v2.1.198 wechselt es vom dritten Versuch an zum konkreten Grund (liegt CLAUDE_CODE_MAX_RETRIES unter 3, wechselt es beim letzten Versuch).

Kommen bei lebender Anfrage 20 Sekunden lang keine Daten, erscheint ein Banner, während noch nichts fehlgeschlagen ist: Waiting for API response · will retry in … · check your network. Das ist eine Anzeige mit der Bedeutung, dass bislang nichts fehlgeschlagen ist, und der Countdown läuft bis zu dem Punkt, an dem Claude Code die stehen gebliebene Verbindung aufgeben würde. Laut offizieller Doku lag diese Schwelle vor v2.1.185 bei 10 Sekunden, mit anderem Wortlaut.

5. Wo die Verbindung abreißt — drei Ebenen

Zu erfahren, dass die Verbindung verloren ging, entscheidet noch nicht, was zu tun ist. Es gibt drei grobe Stellen, an denen sie abreißen kann, und jede wird anders geprüft.

Ebene 1
Ihr Rechner und Ihre Leitung

Ein Wechsel des WLAN-Zugangspunkts, ein kurzer Aussetzer auf einer Mobilfunkleitung, der Schlafmodus, ein VPN-Client, der neu verbindet.

So prüfen Sie es: Lässt es sich über Kabel oder auf einer anderen Leitung reproduzieren? Ist der Schlafmodus die Ursache, erscheint ein eigener Wortlaut, was die Sache klärt.

Ebene 2
Der Weg (Proxys und Gateways)

Unternehmensproxys, TLS-Inspektion, LLM-Gateways, VPNs. Geräte, die einen lange gehaltenen Stream als untätig behandeln und kappen, sind nicht selten.

So prüfen Sie es: Lässt es sich ohne gesetztes HTTPS_PROXY reproduzieren? Bestätigen Sie die Proxy-Zeile in /status.

Ebene 3
Die Serverseite und die Wiederverwendung von Verbindungen

Eine Störung auf der Dienstseite oder eine wiederverwendete Verbindung, die in Wahrheit längst tot war. Das Kennzeichen: Es bricht weiter ab, obwohl Ihre Leitung gesund ist.

So prüfen Sie es: Sehen Sie auf status.claude.com. Reproduziert es sich auf mehreren Leitungen gleich, ist es kein rein lokales Problem.

Eine leicht übersehene vierte Möglichkeit — die Rotation von mTLS-Zertifikaten. Wer im Unternehmensumfeld Clientzertifikate nutzt, löst mit dem Austausch von Zertifikat und Schlüssel Fehler auf Verbindungsebene aus (Verbindungsabbrüche, fehlgeschlagene TLS-Handshakes). Laut der offiziellen Dokumentation zur Netzwerkkonfiguration lädt Claude Code bei solchen Verbindungsfehlern beide Dateien neu und versucht es mit dem neuen Paar erneut. Dieses Neuladen ist allerdings ein Verhalten ab v2.1.232; davor wurde das alte Paar bis zu einem Neustart oder einem erneuten Laden der Einstellungen gehalten. Bestätigen lässt es sich daran, ob Stale connection — reloaded rotated mTLS client material im Protokoll von claude --debug erscheint.

6. Was Sie jetzt versuchen — die Checkliste zur Eingrenzung

Von oben nach unten sortiert nach größter Wirkung bei geringstem Aufwand. Prüfen Sie nach jedem Schritt, ob es sich noch reproduziert.

# Was zu tun ist Wozu es dient
1continue antwortenDen Verlust nicht endgültig werden lassen. Schneller als von vorn, ohne Risiko doppelter Ausführung
2Claude Code auf den neuesten Build aktualisierenDas Verbindungsverhalten ändert sich mit der Version. v2.1.198 hat ein Problem behoben, bei dem ein kurzer Netzaussetzer mitten in der Antwort den Turn unterbrach
3Einen Turn in kleinere aufteilen„Einen Stapel Dateien lesen und einen Bericht schreiben“ in Lesen und Schreiben trennen. Die Zeit verringern, die ein Stream überhaupt offen gehalten wird
4Mit abgeschaltetem VPN und Proxy reproduzierenGrenzt Ebene 2 ein. Behebt das Abschalten den Fehler, liegt der Verdacht auf einer Untätigkeitskappung auf dem Weg
5Auf einer anderen Leitung reproduzierenTrennt Ebene 1 von Ebene 3. Verhalten sich mehrere Leitungen gleich, ist es kein rein lokales Problem
6Die Schlafeinstellungen durchsehenWird Ihr Bildschirm während einer langen Antwort dunkel, kann die Verbindung abreißen, bevor der eigene Wortlaut erscheinen kann
7Auf status.claude.com sehenBestätigt Ebene 3. Bei einem 529 gibt Claude Code diesen Hostnamen selbst auf dem Bildschirm aus
8Eine Sitzung mit claude --debug aufzeichnenDas Protokoll landet in ~/.claude/debug/<session-id>.txt. Hängen Sie es an, wenn Sie eine Meldung einreichen
9Prüfen, ob Sie über einen SOCKS-Proxy laufenDie offizielle Dokumentation hält fest, dass SOCKS-Proxys nicht unterstützt werden. Nutzen Sie einen, nehmen Sie einen anderen Weg
„Claude im Browser läuft doch“ beweist hier nichts. Der Chat auf claude.ai und die Claude-Code-CLI öffnen Verbindungen unterschiedlich und halten eine einzelne Verbindung unterschiedlich lange offen. Dass das eine läuft, während allein das andere abbricht, ist durchaus möglich (tatsächlich meldet Issue #85979, weiter unten besprochen, genau diese Lage). Schließen Sie besser nicht daraus, dass das Konto in Ordnung ist, also müsse es ein Konfigurationsproblem sein.

7. Timer und Wiederholungen über Umgebungsvariablen einstellen

Claude Code hält vier unabhängige Timer, um einen still gewordenen Stream aufzugeben. Die Liste in der offiziellen Dokumentation zur Netzwerkkonfiguration sieht so aus.

Timer Bedingung für das Aufgeben Standardwert
First-byte deadline Nach dem Senden trifft kein einziger Antwort-Header ein 180 s bei der direkten API, sonst 300 s (plus 1 s je 32 KB Anfragerumpf)
Event-level watchdog Kein einziges Antwort-Event lässt sich parsen 300 s (bei jedem Anbieter aktiv)
Byte-level watchdog Es treffen überhaupt keine Bytes ein, SSE-Keep-alive-Pings eingeschlossen 180 s bei der direkten API, sonst 300 s
Body idle timeout Fünf Minuten lang keine Bytes 5 Minuten (für andere Anbieter als die direkte API)

Allerdings landet das, was diese Timer aufgeben, in aller Regel beim Wortlaut der Stille — einer anderen Meldung als der dieses Artikels. Sie steht hier, weil Sie die Standardwerte brauchen, um beide auseinanderzuhalten, und nicht, weil „lost erschien, also verlängern wir einen Timer“. In einer Umgebung mit langen Stillephasen hinter einem Proxy ändert das Anpassen dieser Werte tatsächlich das Symptom auf der Stillstandsseite.

Auf der Seite der Wiederholungen gelten diese Variablen.

Umgebungsvariable Standard Wirkung
CLAUDE_CODE_MAX_RETRIES 10 Wie viele Wiederholungen. Ab v2.1.186 liegt die Obergrenze bei 15. In Skripten wird empfohlen, sie zu senken und schnell scheitern zu lassen
CLAUDE_CODE_RETRY_WATCHDOG nicht gesetzt Für unbeaufsichtigte Sitzungen wie CI. Auf 1 gesetzt wiederholt es 429 und 529 unbegrenzt und hebt ab v2.1.199 die Standardanzahl für vorübergehende Fehler einschließlich Abbrüchen auf 300
API_TIMEOUT_MS 600000 Zeitüberschreitung je Anfrage (Millisekunden, also 10 Minuten). Auf langsamen Leitungen oder hinter einem Proxy erhöhen
CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS nicht gesetzt Zeitüberschreitung allein für den Byte-Watchdog. Wird auf 10 Sekunden bis 30 Minuten begrenzt
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS nicht gesetzt Setzt die Frist bis zum ersten Byte direkt. Verfügbar ab v2.1.242
⚠️ Ein höherer Wiederholungszähler verringert diese Meldung nicht. Wie Abschnitt 4 gezeigt hat, ist es der Hinweis, der genau dort ausgegeben wird, wo Claude Code eine Wiederholung bewusst vermeidet. Ein höheres CLAUDE_CODE_MAX_RETRIES hilft dem Fehler, der abbricht, bevor Ausgabe erscheint; für einen Abbruch mitten in der Antwort tut es nichts. Was hilft, ist, jeden Turn kürzer zu machen.

8. Wie Sie sie von ähnlichen Meldungen unterscheiden

Für Leserinnen und Leser ist das vielleicht der nützlichste Teil. Das Erlebnis, mittendrin stehen zu bleiben, ist dasselbe, aber der Wortlaut, den Claude Code ausgibt, unterscheidet sich, und ebenso Ursache und Abhilfe. Hier ist es, abgebildet auf die vorhandenen Artikel dieser Website.

Wortlaut auf dem Bildschirm Was geschieht Wo Sie nachlesen
Connection lost mid-response Ausgabe war erschienen, und dann ging die Verbindung verloren dieser Artikel
Connection closed mid-response Der alte Name für dasselbe Ereignis (vor v2.1.227) der closed-Artikel, der die Meldungen aus der Zeit des alten Namens sammelt
The response stopped arriving
alt: Response stalled mid-stream
Die Verbindung lebt, ist aber still geworden, und ein Timer hat aufgegeben der stalled-Artikel (achten Sie auf die Verkettung mit einer Wiederholungsschleife)
Server error mid-response Mitten im Stream gab die Serverseite ein 5xx oder overloaded zurück der Artikel zu 529 und 500
Your computer went to sleep mid-response Claude Code hat erkannt, dass der Rechner geschlafen hat, während die Antwort lief die Energie- und Schlafeinstellungen durchsehen (Abschnitt 6 dieses Artikels)
Connection lost before a response was produced Es brach ab, bevor ein einziges Zeichen erschien (keine Teilausgabe) ein Fall, der wiederholt wird. Abschnitt 4 dieses Artikels
Unable to connect und SSL-Zertifikatsfehler Es verbindet sich überhaupt nicht der Artikel zu Netzwerk und Proxy
court- oder invoke-Tags erscheinen im Text Kein Netzwerkproblem — der Tool-Aufruf wird nicht ausgeführt der Artikel zum court-Tag

Der größte Zweig ist, ob überhaupt eine Antwort auf dem Bildschirm erschien. Kam kein einziges Zeichen durch, rücken die Verbindung oder die Konfiguration (Proxy, Zertifikate, Firewall) in den Verdacht. Kam Ausgabe bis zu einem Punkt, ist das der Beleg, dass die Verbindung funktionierte; dann ist der Weg über die Eingrenzung in diesem Artikel richtiger als das Ändern von Einstellungen.

Der zweite Zweig ist Abbruch gegen Stille

Ob die Verbindung verloren ging oder bei offener Leitung verstummte, dreht den nächsten Schritt vollständig um.

Wenn es ein Abbruch ist (lost)

Verdächtigen Sie den Weg und die Wiederverwendung von Verbindungen. Die Werte für die Zeitüberschreitung zu verlängern, bringt nichts — nichts lief in eine Zeitüberschreitung; die Verbindung selbst ist weg.

Wenn es Stille ist (stopped arriving)

Hier zählen die Timer. CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS und Ähnliches anzupassen hat Spielraum, und auch ein Modell, das lange verstummt, ist verdächtig.

9. Echte Meldungen — wenn ECONNRESET nicht aufhört

Das übelste Muster ist, dass allein Claude Code abbricht, während die lokale Leitung völlig gesund ist. Zwei öffentliche Issues tragen erhebliche Prüfarbeit. Beide sind unter dem neuen Namen dieses Artikels gemeldet oder enthalten den Wortlaut der Version unmittelbar davor.

Issue #86473 (v2.1.229 unter Windows 11)
Rohes HTTPS geht durch, allein die CLI bricht ab

Die meldende Person schreibt, dass auf Connection dropped (ECONNRESET) · Retrying in 17s · attempt 6/10 ein API Error: Connection lost mid-response. folgt. Darüber hinaus liefen ein 60-KB-POST per curl und ein POST derselben Größe per reinem Node.js mit https.request beide normal durch, und ein lang laufender SSE von einem anderen Host riss ebenfalls nicht ab.

MTU-Prüfungen, Winsock-LSP-Prüfungen, die Reproduktion auf einer minimalen Konfiguration und die Reproduktion in zwei voneinander unabhängigen Netzen sind alle erledigt, und es bleibt ungelöst. Issue #86473 ist als Duplikat markiert und dennoch offen.

Issue #85979 (v2.1.228 unter Windows 11)
Auf demselben Rechner läuft die Browser-Version

Hier lautet es Connection dropped (ECONNRESET) · Retrying in 0s · attempt 4/10. Die meldende Person schreibt, dass es nach der vollständigen Deinstallation der Sicherheitssoftware und dem Ausschluss von VPN-Filtern, Proxy und IPv6 sowie einem Winsock-Reset auf drei Netzen identisch auftrat: Büro-WLAN, Heim-WLAN und Tethering über das Telefon.

Der angebotene Gegensatz ist, dass der Chat auf claude.ai ohne Probleme läuft, auf demselben Rechner und mit demselben Konto. Issue #85979 ist ebenfalls weiterhin offen (stale).

🟡 Zur Konfidenz dieses Abschnitts. Beide obigen sind Meldungen Einzelner und keine offizielle Erklärung der Ursache durch Anthropic. In #85979 schreibt die meldende Person, der Support habe gesagt, der Fehler rund um die Wiederverwendung veralteter Verbindungen solle ab v2.1.227 behoben sein, es habe sich nach dem Aktualisieren aber weiterhin reproduziert — das ist die meldende Person, die einen Austausch mit dem Support zitiert, keine veröffentlichte offizielle Position. Dasselbe gilt für die zwei in #86473 erwähnten Störungsfenster: Auch das ist, was die meldende Person vom Support gehört haben will. Bitte lesen Sie nichts davon als ein Ereignis mit gesicherten Reproduktionsbedingungen.

Trotzdem gibt es aus den beiden etwas Praktisches mitzunehmen. „ping funktioniert“ und „curl funktioniert“ sind kein Beleg dafür, dass dieser Fehler nicht auftritt. Verkehr, der eine Verbindung minutenlang für einen Stream offen hält, ist nicht in derselben Lage wie eine kurze Anfrage. Statt Zeit in die Untersuchung des lokalen Netzes zu stecken, ist das Aufteilen des Turns der einfachere Weg, die Häufigkeit zu senken.

10. Was bestätigt ist und was nicht

Um Fehldeutungen zu vermeiden, steht hier, was sich offiziell bestätigen lässt, getrennt von dem, was sich nicht bestätigen lässt.

✅ Offiziell bestätigt
  • Dieser Wortlaut ist in der offiziellen Fehlerreferenz förmlich dokumentiert und bedeutet, dass die Verbindung verloren ging
  • Vor v2.1.227 erschien er als Connection closed mid-response (eine Umbenennung derselben Sache)
  • Ausgabe, die bereits gestreamt wurde, wird bewusst behalten (weil ein erneutes Senden doppelte Ausführung riskiert)
  • Der Wiederherstellungsschritt ist, continue zu antworten
  • Ein Abbruch, bevor Ausgabe erscheint, wird automatisch wiederholt (bis zu zehnmal, exponentielles Backoff)
  • Nicht interaktive Sitzungen und Subagenten setzen von allein fort (ab v2.1.246 beziehungsweise ab v2.1.257)
🟡 Gemeldet, aber unbestätigt
  • Rohes HTTPS ist gesund, während allein die CLI mit ECONNRESET stirbt (gemeldet in #86473 und #85979)
  • Der Gegensatz, dass die Browser-Version auf demselben Rechner und Konto läuft (gemeldet in #85979)
  • Die Möglichkeit, dass ein Fehler bei der Wiederverwendung von Verbindungen beteiligt ist (Erklärung des Supports, zitiert von der meldenden Person)
  • Ein Hinweis auf serverseitige Störungen zu bestimmten Zeiten (ebenfalls über die meldende Person)
🔴 Zum Redaktionsschluss unveröffentlicht
  • Eine offizielle Erklärung der Ursache durch Anthropic (keines der beiden Issues oben hat eine öffentliche Antwort)
  • Der Grund für die Umbenennung. Im CHANGELOG ist keine Änderung des Wortlauts verzeichnet
  • #86473 und #85979 sind beide weiterhin offen

Kurz gesagt: Symptom, Bedeutung und Wiederherstellungsschritt sind offiziell dokumentiert, während keine offizielle Erklärung veröffentlicht ist, warum es abreißt. Was in dieser Lage verlässlich wirkt, ist nicht das Bestimmen der Ursache, sondern ein Betrieb, in dem ein Abbruch wenig kostet — Turns kurz aufteilen, Operationen mit Nebenwirkungen unter Prüfung des Zustands ausführen und die Version aktuell halten. Diese drei helfen, welche Ursache sich auch immer herausstellt.

FAQ

Q1. Sind „Connection lost mid-response“ und „Connection closed mid-response“ verschiedene Fehler?

Sie sind dasselbe. Wie die offizielle Fehlerreferenz ausdrücklich festhält, wurde dasselbe Ereignis vor v2.1.227 als Connection closed mid-response angezeigt. Eine geänderte Anzeige bedeutet nicht, dass eine neue Art von Störung aufgetreten ist. Material, das unter dem alten Namen geschrieben wurde, lässt sich unverändert weiterverwenden.

Q2. Geht die Ausgabe bis zu diesem Punkt verloren?

Nein. Jeder Block, den Claude abgeschlossen hat, bleibt erhalten. Verworfen wird allein der letzte Block, der beim Ende des Turns noch lief. Claude Code hängt diesen Hinweis bewusst an, statt erneut zu senden, weil ein erneutes Senden riskiert, denselben Tool-Aufruf zweimal auszuführen.

Q3. Was antworte ich, um dort fortzusetzen, wo es aufgehört hat?

Antworten Sie continue. Das ist der Wiederherstellungsschritt, den die offizielle Fehlerreferenz nennt, und er setzt beim letzten abgeschlossenen Block auf. Die Anweisung von vorn zu geben riskiert, bereits gelaufene Operationen zu verdoppeln.

Q4. Behebt es ein höherer Wiederholungszähler?

Nein. Wie Abschnitt 4 erklärt, ist dies der Hinweis für eine Lage, in der Claude Code eine Wiederholung bewusst vermeidet. CLAUDE_CODE_MAX_RETRIES (Standard 10, Obergrenze 15 ab v2.1.186) hilft dem Fehler, der abbricht, bevor Ausgabe erscheint. Was hier hilft, ist, jeden Turn kürzer zu machen.

Q5. Ist es mit -p oder in CI (nicht interaktive Läufe) dasselbe?

Das Verhalten unterscheidet sich. Laut offizieller Referenz fordert Claude Code in einer nicht interaktiven Sitzung die Fortsetzung selbst an, wenn die unterbrochene Antwort nur Text enthält und keinen Tool-Aufruf — bis zu drei Mal hintereinander. Dieser Hinweis erscheint, sobald sie aufgebraucht sind. Vor v2.1.246 endete der Turn beim ersten Abbruch. Wenn Sie --output-format json nutzen, landet diese Meldung im Feld result.

Q6. Sie erscheint auch in Subagenten (Task).

Subagenten setzen auf dieselbe Weise automatisch fort. Enthält die unterbrochene Antwort nur Text, fordert Claude Code den Subagenten zur Fortsetzung auf, und erst wenn die Fortsetzungen aufgebraucht sind, wird dieser Hinweis zur letzten Meldung. Vor v2.1.257 wurde der Hinweis beim ersten Abbruch ausgegeben.

Q7. Ist mein eigenes Netz schuld?

Vielleicht, aber nicht zwangsläufig allein. Die meldende Person in Issue #86473 hat gezeigt, dass POSTs derselben Größe per curl und per reinem Node.js durchlaufen, und meldet, dass allein die CLI abbricht. Prüfen Sie zuerst, ob es sich mit abgeschaltetem VPN und Proxy reproduziert, und versuchen Sie danach eine andere Leitung. Ändert beides nichts, ist es kein rein lokales Problem.

Q8. Verringern längere Zeitüberschreitungen es?

Für diese Meldung erwarten Sie das besser nicht. Das Urteil lautet, dass die Verbindung selbst verloren ging, und nicht, dass die Zeit ablief. Timer wie CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS zu verlängern hilft bei The response stopped arriving, dem Symptom, bei dem die Verbindung lebt, aber verstummt.

Q9. Wie prüfe ich, auf welcher Version ich bin?

Führen Sie claude --version aus. Steht auf dem Bildschirm lost, sind Sie auf v2.1.227 oder neuer; steht dort closed, auf etwas Älterem. Das Verbindungsverhalten hat sich über die Versionen geändert, und das offizielle CHANGELOG verzeichnet in v2.1.198 einen Fix dafür, dass ein kurzer Netzaussetzer mitten in der Antwort den Turn unterbrach. Ein Update ist der erste Versuch wert, aber keine Garantie für eine Heilung — beide oben zitierten Issues sind Meldungen zu neueren Versionen.

Q10. In einem Unternehmensnetz passiert es ständig. Welche Einstellungen sollte ich ansehen?

Die offizielle Dokumentation zur Netzwerkkonfiguration deckt das Wesentliche ab. Drei Punkte: erstens werden SOCKS-Proxys nicht unterstützt, nutzen Sie also keinen; zweitens legen Sie die Proxy-Variablen in den env-Block von ~/.claude/settings.json, statt sie aus der Shell zu exportieren (Hintergrundagenten erben die Shell-Umgebung nicht); drittens achten Sie bei mTLS auf die Zertifikatsrotation. Ob die Einstellungen gelesen wurden, lässt sich im Protokoll von claude --debug oder in der Anzeige von /status bestätigen.

Verwandte Artikel

Herangezogene Primärquellen