你问了个问题,回复开始正常流出来,流到一半突然就停了。没 spinner,有时没报错,有时弹一条 Streaming interrupted, waiting for complete message 或 Error in message stream,半段话就挂在那。ChatGPT 的回答走的是实时流式连接(Server-Sent Events,有时是 WebSocket),连接一断,UI 只能显示掐断之前那部分。很多时候模型在服务端其实已经写完了,断的只是这条直播管道。
最快的修法: 刷新对话。差不多一半的概率,完整答案早就存在服务端,刷新后会重新出现在那一轮里。如果是真停了,看回复下方有没有 Continue generating 按钮,或者在同一个对话里发一句”从你停的地方接着写”。下面这套流程是给”反复出现”的情况用的。
你属于哪一类?
| 症状 | 最可能的原因 | 跳到 |
|---|---|---|
| 刷新后完整答案又出现了 | 流断了,但生成已完成 | Step 1 |
| 一切走 tab / app 就立刻断 | 后台标签页限速 | Step 5 |
| 只有长回答断,短的没事 | VPN / 公司代理的空闲超时 | Step 4 |
| 隐身模式里也断,每个 prompt 都断 | 后端 / 账号侧(限速、会话过期) | Step 2、Step 6 |
| 隐身干净、普通窗口断 | 浏览器扩展在污染流 | Step 3 |
长对话里弹 Error in message stream | 会话 token 静默过期 | Step 6 |
常见原因
按命中率从高到低。
1. SSE / WebSocket 连接中途被掐
ChatGPT 用一条持久连接流式吐 token。Wi-Fi 抖一下、公司代理把空闲连接关掉、VPN 重连一次,这条流都会断。网页客户端不会自动重试;延迟飙过 ~150 ms 或者信号瞬断一下就够了。
怎么判断:打开 DevTools → Network → 过滤 conversation。停顿时间点附近有一条红色或 (canceled) 的请求,就是它。
2. 浏览器标签页被切到后台
Chrome 和 Safari 对后台标签页限速很狠,标签页一被挂起,流式连接就断了。切回来也不会续上。
怎么判断:流断的那一刻你是不是刚切了 tab、切了 app、或者让笔记本睡眠了。是的话就是它。
3. 浏览器扩展干扰响应
广告拦截、隐私扩展、以及那些挂在 ChatGPT 页面里的”AI 助手”扩展,可能把这条持久流误判成追踪器直接掐掉,或者注入错误让它中断。
怎么判断:在禁用扩展的隐身窗口里打开 ChatGPT。流正常 = 扩展的锅。
4. 公司网络或 VPN 有空闲超时
有些公司防火墙和 VPN 会把空闲超过 30-60 秒的 TCP 连接掐掉,长回答超出这个窗口就被掐在中间。离 OpenAI 很远的 VPN 出口节点还会加延迟,把连接顶过超时阈值。
怎么判断:断开 VPN 或换个家庭网络再测。长回答能正常跑完,就是网络在掐流。
5. 后端瞬时打嗝或软限速
后端到容量、或者你账号撞到软限速时,流可能直接 token 流到一半就断。截至 2026 年 6 月,OpenAI 公布的事故记录显示:降级期间 Free 套餐用户受影响最重,Plus / Pro 基本不受影响。
怎么判断:看 status.openai.com 有没有降级标识。或者在新对话里重发同一个 prompt,如果也断了,多半是后端压力。
6. 长对话里会话 token 静默过期
一个开了好几个小时的对话里,认证 / 会话 token 可能在后台悄悄过期。这时下一次流式请求就会失败——哪怕你网络好好的——通常表现为 Error in message stream。
怎么判断:硬刷新,或者退出登录再登进来。之后流式稳了,就是会话过期搞的。
7. 手机 app 切到后台或丢了信号
iOS 和 Android 上切 app 或者丢信号都会断流式连接。半段回复留在界面上,但不会自己续上。
怎么判断:流断的那段时间,屏幕是不是亮的、app 是不是在前台。不是的话就是这个。
开始前
- 决定一下:你是马上就要这个答案,还是可以重试。重试通常都行。
- 如果 prompt 很贵(token 多),刷新前先把那段半截答案复制下来。
- 记一下你现在是 Wi-Fi、移动数据、还是 VPN,诊断路径不一样。
要收集的信息
- 浏览器和版本号,或者手机 app 版本号。
- 网络类型(家里 Wi-Fi / 公司网络 / 移动数据 / VPN)。
- 流断的时候你有没有切 tab 或切 app。
- 那段半截回复的长度(短 = 早断 / 长 = 晚断)。
- 是每次回复都断,还是只长回复才断。
- 弹出的报错原文(
Error in message stream、Streaming interrupted, waiting for complete message)。 - 装了哪些扩展,特别是广告拦截和 AI 助手类的。
一步步修
Step 1: 刷新页面,捞完整回复
很多时候服务端其实已经生成完了,只是部分 token 没流到你这边。刷新对话,如果完整答案出现在那一轮里,那就是生成 OK、只是直播断了。这是收益最高的一步,先做它。
Step 2: 真断了,就让它接着写
先看断掉的回复正下方有没有 Continue generating 按钮——回复撞到单轮 token 上限时 OpenAI 会显示它。没有按钮的话,在同一个对话里发:
从你上一条回复停止的地方接着写:
「……你最后流出来的那几个字……」
引用你实际看到的最后几个字,能帮模型对齐位置、干净接上,而不是重新开始。
Step 3: 用隐身窗口 + 禁用扩展测试
开 Chrome 隐身窗口(默认就不带扩展),登录,重试。流能跑完 = 扩展在污染响应。回到普通窗口里逐个关扩展定位元凶。广告拦截、隐私防护、ChatGPT”助手”类扩展是惯犯。
Step 4: 换网络或断 VPN
公司 Wi-Fi 或 VPN 上,临时切到手机热点测一次。长回答在热点上能跑完,就是公司代理在掐。让 IT 给 chatgpt.com 和 chat.openai.com 加白名单、不要掐长连接流。再软一点的修法:把 DNS 换成 Cloudflare(1.1.1.1)或 Google(8.8.8.8),能解决一部分解析抖动的情况。
Step 5: 长回复期间标签页保持在前台
长回答(1000+ 字、deep research、代码),把 ChatGPT 标签页保持可见、笔记本别睡眠。后台标签页限速、以及 macOS 睡眠挂起网络,是长流的隐形杀手。
Step 6: 退出登录再登回来,刷新会话
如果你在同一个对话里待了好几个小时、现在弹 Error in message stream,可能是会话 token 过期了。完整退出 OpenAI 账号,重新登录,再试。这能清掉旧的认证状态,修好那一类换网络也没用的截断。
Step 7: 把长请求拆成多个短流
不要一上来就「写一篇 3000 字的文章」,先「先给大纲,每节再展开」。每次流都短,远不容易撞空闲超时或单轮 token 上限。
Step 8: 从网页切到桌面或手机 app
某些场景下,原生 app 对中断的处理比浏览器稍微好一点,特别是 Wi-Fi 不稳的时候。上面几步都做了网页流还总断,就拿桌面 app 当备用方案。
怎么确认修好了
- 发一个中等长度的 prompt(「用 500 字解释 X」)。从头流到尾不断 = 干净。
- 跑一次长生成(大纲 + 完整草稿),标签页保持前台,能完整跑完。
- 如果是关扩展修好的,把扩展逐个开回来再测,定位是哪一个。
- 如果是退登再登修好的,再跑一个长 prompt,确认会话稳定。
长期预防
- 长生成期间 ChatGPT 标签页保持在前台,别让机器睡眠。
- 公司网络上,让 IT 把 OpenAI 域名加白名单、关掉空闲连接的 SSE 超时。
- 超长输出拆成多块,不要一个超大 prompt。
- 远离会挂在 ChatGPT DOM 上的 AI 助手类扩展,它们很常断流。
- 备一个桌面或手机 app 当 fallback。
常见坑
- 一刷新就以为半截内容丢了——其实完整答案常常已经存好了。
- 让它「continue」却不引用最后几个字,模型会重新开始而不是接续。
- 责怪 GPT-5.5「早早就停了」——其实是网络把流掐了。
- 在睡眠中的笔记本上跑长生成,macOS 会挂起网络。
- 以为隐身模式自动 = 关扩展,并不是,你手动允许的扩展隐身里照样跑。
FAQ
- 为什么刷新后答案又出现了? 服务端生成完并保存了消息,只是你这边的直播流断了。刷新读的是保存版本。
Error in message stream是什么意思? 模型开始回复了,但流式连接在传完之前断了。是传输层故障,不是模型故障。先刷新,再查网络、扩展、会话。- 能让 ChatGPT 自动重试断掉的流吗? 不行,网页客户端不会自动重试。刷新、点
Continue generating、或者让它接着写。 - 这是 GPT-5.5 的问题吗? 不是,模型通常已经写完了。问题在 OpenAI 服务端到你浏览器之间的传输。
- API 上会这样吗? API 把原始 SSE 暴露给你,断了你可以在自己代码里检测并按保存位置重试,控制权比网页 UI 大得多。
- Plus 或 Pro 能避免吗? 流式管道是同一条,但后端降级期间 OpenAI 会优先保障付费档,所以限速类截断在 Plus、Pro 上比 Free 少。
- 为什么长回答更容易遇到? 长回答在线路上时间更久,途中任何空闲超时或单轮 token 上限都有更多机会触发。