網路 upstream_error api proxy

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 #stream disconnected before completion upstream request failed #codex upstream_error #codex response.failed event received #codex websocket closed before response.completed #stream closed before response completed #idle timeout waiting for sse #connection reset by peer os error 54 #遠端主機強制關閉了一個現有連線 os error 10054 #codex tls handshake eof

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 failedupstream_error 則表示失敗更靠近上游:可能是 OpenAI / ChatGPT 後端、Codex 客戶端的長連線,也可能是中轉站往上游轉發時斷掉。

所以它不是單純的「模型答錯」或「Key 寫錯」。更準確地說,是 Codex 的 Responses 串流鏈路沒有撐到完成。

常見原因

  1. Codex App 或 CLI 升級後,WebSocket / HTTPS transport 在某些網路環境下不穩。
  2. 公司網路、VPN、TUN 模式、透明代理或網關提前關閉長連線。
  3. 官方 Codex / OpenAI 上游短時間高負載,出現 503、no healthy upstream 或 upstream connect error。
  4. 中轉站短請求可用,但 /v1/responses、SSE、工具調用或長上下文不穩。
  5. ~/.codex/config.toml 裡殘留舊 provider、舊 Base URL 或錯誤的 wire_api

不要只用普通 curl 或 hello 請求判斷 provider 正常;Codex 的串流任務更容易暴露上游和長連線問題。

先排除突發故障

如果服務一直能用卻突然報錯,先重啟 Codex、換網路或代理節點、等幾分鐘再試;只有 URL 明顯不是預期入口時,再查 Base URL 或 provider 配置。

怎麼解決

  1. 先升級或重啟 Codex App / CLI;如果是升級後才出現,記下版本和出錯時間。
  2. 換一條網路路徑測試,例如手機熱點、另一個 VPN 節點,或暫時避開公司網關。
  3. 如果你用的是中轉站,讓服務商確認 /v1/responsesstream=true 和 SSE 串流是否穩定。
  4. 檢查 ~/.codex/config.toml,清掉不用的 provider、舊 Base URL 和錯誤的 wire_api
  5. 把大任務拆小,新開一個乾淨會話再試。
  6. 如果持續失敗,帶上完整報錯、URL、request id、Codex 版本、模型名、是否中轉、出錯時間和網路路徑去問服務商或官方支援。

一句話結論

stream disconnected before completion: Upstream request failed 是 Codex 串流鏈路突然斷開的外層提示,先按臨時上游故障、代理長連線和客戶端版本變化排查。

相關錯誤

Claude Code / Codex 503 No available accounts:中轉站帳號池不可用排查 先不要盲目換 Key。這個錯誤通常說明帳號池、供應商、分組或模型路由暫時不可用。先測最小請求、確認模型和分組,再判斷是等待恢復、降低上下文,還是換 provider。 Codex: Selected model is at capacity. 模型容量已滿排查 報錯:Selected model is at capacity. Please try a different model. 先把它當作模型級容量、Admission 或串流中斷問題處理。它可能出現在官方 ChatGPT 登錄態 Codex CLI,也可能來自中轉站帳號池或 Sub2API 上游 overloaded 透傳。 Codex 提示:你的對話中有多個可能的網路安全風險的標記 提示:你的對話中有多個可能的網路安全風險的標記。先把它當作 OpenAI/Codex 安全路由觸發,而不是直接判斷帳號或中轉站故障;再檢查是否使用了中轉 API、敏感關鍵詞、超長程式碼上下文或不透明模型路由。 Error 429 Too Many Requests:AI API 中轉站限流排查 報錯:exceeded retry limit, last status: 429 Too Many Requests, request id: <request-id>。AI 中轉站裡連續 429 多半是上游帳號池限流、冷卻或額度耗盡,先讓服務商換號、換線路或換模型。 Error 401 Unauthorized:AI API 中轉站認證排查 401 是認證失敗訊號。先檢查目前載入的是哪一個 Key、請求打到哪個 Base URL、header 格式是否正確,以及這個 Key 是否仍然在對應 provider 中有效。

相關教程

相關主題

常見問題

常見問題

這個錯誤是不是 API Key 錯了?

通常不是。API Key 錯誤更常見是 401、403 或登入失敗。Upstream request failed 更像上游、串流連線、代理網關或自定義 provider 兼容性問題。

普通聊天或 curl 正常,為什麼 Codex 還是失敗?

普通短請求正常,不代表 Codex 的 Responses 串流任務穩定。Codex 會用到更長上下文、工具調用和長連線,更容易暴露上游超時或 SSE 中斷。

要不要立刻換中轉站?

不要先換。若服務原本能用,先重啟 Codex、換網路或代理節點、等幾分鐘再試。只有多個模型持續失敗,且服務商確認上游或串流不穩,再考慮換 provider。