Codex 報錯:stream disconnected before completion: Upstream request failed
這個錯誤通常不是 API Key 寫錯,而是 Codex 等待串流回應時,上游或中間網路鏈路提前斷開。若同一個服務之前能用,先按臨時上游故障、代理長連線或 Codex 版本變化排查。
錯誤摘要
Codex 報 stream disconnected before completion: Upstream request failed 時,先不要只看普通 curl 或 hello 請求。這類錯誤更常出現在 Codex 的 Responses 串流、SSE / WebSocket 長連線、中轉站上游或客戶端版本變化上。
Codex 報:
stream disconnected before completion: Upstream request failed
也可能看到:
{"type":"upstream_error","message":"Upstream request failed"}
或這些相近提示:
stream disconnected before completion: response.failed event received
stream disconnected before completion: websocket closed by server before response.completed
stream disconnected before completion: stream closed before response.completed
這個錯誤是什麼意思
stream disconnected before completion 表示 Codex 還沒等到完整的 response.completed,串流連線就已經斷開。
Upstream request failed 或 upstream_error 則表示失敗更靠近上游:可能是 OpenAI / ChatGPT 後端、Codex 客戶端的長連線,也可能是中轉站往上游轉發時斷掉。
所以它不是單純的「模型答錯」或「Key 寫錯」。更準確地說,是 Codex 的 Responses 串流鏈路沒有撐到完成。
常見原因
- Codex App 或 CLI 升級後,WebSocket / HTTPS transport 在某些網路環境下不穩。
- 公司網路、VPN、TUN 模式、透明代理或網關提前關閉長連線。
- 官方 Codex / OpenAI 上游短時間高負載,出現 503、no healthy upstream 或 upstream connect error。
- 中轉站短請求可用,但
/v1/responses、SSE、工具調用或長上下文不穩。 ~/.codex/config.toml裡殘留舊 provider、舊 Base URL 或錯誤的wire_api。
不要只用普通 curl 或 hello 請求判斷 provider 正常;Codex 的串流任務更容易暴露上游和長連線問題。
先排除突發故障
如果服務一直能用卻突然報錯,先重啟 Codex、換網路或代理節點、等幾分鐘再試;只有 URL 明顯不是預期入口時,再查 Base URL 或 provider 配置。
怎麼解決
- 先升級或重啟 Codex App / CLI;如果是升級後才出現,記下版本和出錯時間。
- 換一條網路路徑測試,例如手機熱點、另一個 VPN 節點,或暫時避開公司網關。
- 如果你用的是中轉站,讓服務商確認
/v1/responses、stream=true和 SSE 串流是否穩定。 - 檢查
~/.codex/config.toml,清掉不用的 provider、舊 Base URL 和錯誤的wire_api。 - 把大任務拆小,新開一個乾淨會話再試。
- 如果持續失敗,帶上完整報錯、URL、request id、Codex 版本、模型名、是否中轉、出錯時間和網路路徑去問服務商或官方支援。
一句話結論
stream disconnected before completion: Upstream request failed 是 Codex 串流鏈路突然斷開的外層提示,先按臨時上游故障、代理長連線和客戶端版本變化排查。