ChatGPT Streaming Stops Mid-Word: Recover the Reply

The reply streams half a sentence then freezes. Usually a dropped SSE connection, a backgrounded tab, or a backend hiccup. Refresh first, then diagnose by bucket.

You ask a question, the reply starts streaming nicely, then halfway through a sentence it just stops. No spinner, sometimes no error, sometimes a banner like Streaming interrupted, waiting for complete message or Error in message stream. A half-paragraph hangs there. ChatGPT delivers answers over a live streaming connection (Server-Sent Events, sometimes a WebSocket), and when that connection drops, the UI keeps showing whatever made it through before the drop. The model often finished server-side; only the live pipe broke.

Fastest fix: refresh the chat. Roughly half the time the full answer was saved server-side and reappears in the thread. If it really stopped, look for a Continue generating button under the reply, or send a “continue from where you stopped” message in the same thread. The rest of this guide is for when it keeps happening.

Which bucket are you in?

Symptom patternMost likely causeJump to
Full answer reappears after refreshStream broke, generation finishedStep 1
Dies the instant you switch tabs/appsBackground tab throttlingStep 5
Only long answers cut; short ones are fineIdle-timeout on VPN/corporate proxyStep 4
Cuts in incognito too, every promptBackend/account-side (rate limit, expired session)Step 2, Step 6
Clean in incognito, broken in normal windowBrowser extension corrupting the streamStep 3
Error in message stream on a long chatSession token expired silentlyStep 6

Common causes

Ordered by hit rate, highest first.

1. SSE/WebSocket connection dropped mid-stream

ChatGPT streams tokens over a persistent connection. Flaky Wi-Fi, a corporate proxy that closes idle connections, or a VPN reconnect severs it. The web client does not retry automatically; latency spikes above ~150 ms or a brief signal dip are enough.

How to judge: Open DevTools, Network tab, filter to conversation. A red or (canceled) entry around the stop time confirms the drop.

2. Browser tab was backgrounded

Chrome and Safari throttle background tabs aggressively, and a suspended tab drops the streaming connection. Returning to the tab does not resume it.

How to judge: If the stream died exactly when you switched tabs, apps, or let the laptop sleep, this is it.

3. Browser extension interfering with the response

Ad blockers, privacy extensions, and “AI helper” extensions that hook into the page can misidentify the persistent stream as a tracker and kill it, or inject errors that abort it.

How to judge: Open ChatGPT in an incognito window with extensions disabled. Clean streaming there points at an extension.

4. Corporate network or VPN with idle-connection timeouts

Some corporate firewalls and VPNs cut TCP connections idle for more than 30-60 seconds. Long answers exceed that window and get severed mid-stream. VPN exit nodes far from OpenAI also add latency that pushes the connection past its timeout.

How to judge: Disconnect the VPN or move to a personal network. If long answers now complete, the network was killing the stream.

5. Backend hiccup or soft rate-limit

When the backend hits capacity, or your account hits a soft rate limit, the stream can cut off mid-token. As of June 2026, OpenAI’s published incidents show Free-tier users hit hardest during degraded-performance windows, with Plus/Pro mostly unaffected.

How to judge: Check status.openai.com for a degraded indicator. Also retry the same prompt in a fresh chat; if it also cuts off, backend pressure is likely.

6. Session token expired silently on a long-running chat

In a chat that has been open for hours, the auth/session token can expire in the background. The next stream request then fails even though your network is fine, often surfacing as Error in message stream.

How to judge: Hard-refresh, or log out and back in. If streaming is solid afterward, a stale session was the cause.

7. Mobile app went to background or lost signal

On iOS and Android, switching apps or losing signal closes the streaming connection. The partial reply stays on screen but no resume happens.

How to judge: Was the screen on and the app foregrounded the whole time? If not, that is the cause.

Before you start

  • Decide whether you need the answer right now or can retry. Retries usually work.
  • If the prompt was expensive (lots of tokens), copy the partial answer before you refresh.
  • Note whether you are on Wi-Fi, mobile data, or VPN. The diagnosis differs.

Information to collect

  • Browser and version, or mobile app version.
  • Network type (home Wi-Fi, corporate, mobile, VPN).
  • Whether you switched tabs or apps when the stream cut.
  • Length of the partial answer (short means early drop, long means late drop).
  • Whether it happens on every reply or only long ones.
  • Any exact banner text shown (Error in message stream, Streaming interrupted, waiting for complete message).
  • Installed extensions, especially ad blockers and AI helpers.

Step-by-step fix

Step 1: Refresh the page to recover the full reply

Often the server finished generating but only some tokens streamed to your client. Refresh the chat. If the full answer now appears in the thread, generation was fine and only the live stream broke. This is the single highest-yield move, so do it first.

Step 2: If it truly stopped, continue it

First look for a Continue generating button directly under the cut-off reply. OpenAI shows this when a response hits the per-turn token limit. If there is no button, send this in the same thread:

Continue your previous reply from exactly where you stopped:
"...the last few words you streamed..."

Quoting the last words you actually saw helps the model align and pick up cleanly instead of restarting.

Step 3: Test in an incognito window with extensions disabled

Open Chrome incognito (extensions are off there by default), sign in, retry. If streams now complete, an extension was corrupting the response. Back in your normal window, disable extensions one at a time to find the offender. Ad blockers, privacy guards, and ChatGPT “helper” extensions are the usual suspects.

Step 4: Switch network or disable VPN

On corporate Wi-Fi or a VPN, switch to a mobile hotspot for one test. A clean long reply over hotspot points at the corporate proxy. Ask IT to allowlist chatgpt.com and chat.openai.com and to stop closing long-lived streaming connections. As a softer fix, switching your DNS to Cloudflare (1.1.1.1) or Google (8.8.8.8) resolves some flaky-resolution cases.

Step 5: Keep the tab in the foreground for long generations

For long answers (1000+ words, deep research, code), keep the ChatGPT tab visible and the laptop awake. Background-tab throttling and macOS sleep suspending networking are the silent killers of long streams.

Step 6: Log out and back in to refresh the session

If you have been in the same chat for hours and now see Error in message stream, your session token may have expired. Log out of your OpenAI account fully, log back in, and retry. This clears stale auth and fixes a class of cuts that no network change touches.

Step 7: Break long requests into shorter streams

Instead of “write a 3000-word essay”, ask for “an outline first, then expand each section in turn”. Each individual stream stays short and is far less likely to hit any idle-timeout or per-turn token limit.

Step 8: Switch from web to the desktop or mobile app

The native apps handle interruption slightly better than the browser in some cases, especially over flaky Wi-Fi. If browser streams keep cutting after the steps above, use the desktop app as a fallback.

How to confirm it’s fixed

  • Send a medium-length prompt (“explain X in 500 words”). It should stream end to end without cutting.
  • Run one long generation (an outline plus full draft) with the tab in the foreground. It should complete.
  • If you fixed it by disabling an extension, re-enable extensions one at a time and rerun to isolate which one.
  • If you fixed it by logging out and in, run a second long prompt to confirm the session is stable.

Long-term prevention

  • Keep the ChatGPT tab foregrounded during long generations and stop the machine from sleeping.
  • On corporate networks, ask IT to allowlist OpenAI domains and disable idle-connection SSE timeouts.
  • Break very long outputs into smaller chunks instead of one mega-prompt.
  • Avoid AI helper extensions that hook into the ChatGPT DOM. They frequently break streams.
  • Keep the desktop or mobile app installed as a fallback for flaky browser sessions.

Common pitfalls

  • Refreshing and assuming the partial was lost. The full answer is often already saved.
  • Asking “continue” without quoting the last words, so the model restarts instead of continuing.
  • Blaming GPT-5.5 for “stopping early” when the network actually killed the stream.
  • Running long generations on a sleeping laptop. macOS suspends networking.
  • Trusting incognito with extensions you manually allowed there. Incognito does not block all of them.

FAQ

  • Why does the answer reappear after refresh? The server finished generating and saved the message; only your live stream broke. Refresh re-reads the saved version.
  • What does Error in message stream mean? The model started replying but the streaming connection broke before delivery finished. It is a transport failure, not a model failure. Refresh, then check network, extensions, and session.
  • Can I make ChatGPT auto-retry a broken stream? No. The web client does not retry the stream automatically. Refresh, use Continue generating, or ask it to continue.
  • Is this a GPT-5.5 problem? No. The model usually finished. The issue is the transport between OpenAI’s server and your browser.
  • Does this happen on the API? The API exposes raw SSE, so your own code can detect the break and retry with the saved cursor. You have far more control there than in the web UI.
  • Does Plus or Pro help? The streaming pipeline is the same, but during backend degraded-performance windows OpenAI prioritizes paid tiers, so rate-limit-related cuts are rarer on Plus and Pro than on Free.
  • Why does it happen more on long answers? Long answers spend more time on the wire, so any idle-timeout or per-turn token limit has more chances to fire.

Tags: #ChatGPT #Troubleshooting #web #Debug