網路 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 中有效。 Codex 提示:此聊天已被標記為可能存在網路安全風險 Codex 提示「此聊天已被標記為可能存在網路安全風險」時,先不要把它當作中轉站故障或封號。它更像是系統級網路安全風險標記;普通開發誤觸發時,優先新開會話、縮小上下文、重新表述任務。

相關教程

相關主題

常見問題

常見問題

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

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

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

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

要不要立刻換中轉站?

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