Skip to content

bug: official Codex upstream send failures are misreported as local proxy 502 #6

Description

@BigStrongSun

现象

在 Codex Desktop 里使用 OpenAI Multi-Model Router 走官方 chatgpt.com/backend-api/codex/responses 链路时,偶发出现:

  • 502 Bad Gateway
  • CC Switch local proxy failed while handling Codex endpoint /responses
  • cause: 转发失败: 连接失败: error sending request for url (https://chatgpt.com/backend-api/codex/responses)

用户侧体感通常是“用着用着突然连续失败,然后过一会儿自己恢复”。

已确认事实

这类失败从当前日志看,大概率不是路由配置错误,也不是 base_url 缺失,更不像 provider 解析错误;失败点发生在 已经完成路由解析、已经完成认证头准备之后,向官方 Codex 上游真正发请求的发送阶段

关键日志特征:

  1. route_resolved 成功,且 route_missed=false
  2. request_prepared 显示上游 URL 正确:https://chatgpt.com/backend-api/codex/responses
  3. auth_prepared 已完成,auth_strategy=CodexOAuth
  4. 随后出现 upstream_send_error
  5. 同一路由几秒后又恢复成 upstream_status status=200

这说明:

  • 本地路由逻辑已经走通
  • 本地认证准备也完成了
  • 真正失败的是到官方 Codex 上游的直连发送

日志证据

来自 ~/.cc-switch/logs/codex-router.log

  • 2026-06-24 17:10:16.699 event=upstream_send ... upstream_url=https://chatgpt.com/backend-api/codex/responses ... uses_upstream_proxy=false
  • 2026-06-24 17:10:21.704 event=upstream_send_error ... elapsed_ms=5004 error=error_sending_request_for_url_(https://chatgpt.com/backend-api/codex/responses)
  • 同类错误持续到 17:12:07
  • 随后恢复:
    • 2026-06-24 17:12:10.908 event=upstream_status ... status=200
    • 2026-06-24 17:12:19.580 event=upstream_status ... status=200
    • 2026-06-24 17:12:27.387 event=upstream_status ... status=200

来自 ~/.cc-switch/logs/cc-switch.log

  • 多条 [FWD-003] Provider OpenAI Multi-Model Router 请求失败: 请求转发失败: 连接失败: error sending request for url (https://chatgpt.com/backend-api/codex/responses)

当前判断

从现象和日志看,这一类报错大概率是:

  1. 用户本机翻墙/代理/出海网络临时异常
  2. chatgpt.com 的 TLS/连接建立阶段失败
  3. 官方 Codex 边缘链路短时不可达或被干扰

尤其是这里的失败很有特征:

  • 应用层超时配置是 600000ms
  • 但失败常在约 5000ms 返回

这更像是底层连接建立或发送阶段的失败,而不是业务请求处理超时。

为什么值得建 issue

当前产品把这类故障统一显示成:

  • CC Switch local proxy failed
  • 502 Bad Gateway

这会让用户误以为:

  • 是 CCSwitchMulti 本地路由 bug
  • 是 provider 配置坏了
  • base_url / 路由桶 / 认证桶混了

但实际更接近“官方 Codex 上游链路不可达”或“本机网络环境异常”。

建议方向

  1. 单独识别 chatgpt.com/backend-api/codex/responses 的发送失败

    • 如果是 error sending request for url (...)
    • 并且失败发生在 auth_prepared 之后、HTTP 状态码返回之前
    • 应优先归类为“上游连接失败/网络异常”而不是本地代理逻辑失败
  2. 改进错误文案

    • 现在的 CC Switch local proxy failed 误导性较强
    • 可改成更接近:
      • 连接 OpenAI Codex 上游失败
      • 官方 Codex 链路不可达,可能是代理/网络环境异常
  3. 补充诊断信息

    • 是否走了上游代理
    • 实际目标 URL
    • 失败阶段:route / auth / send / upstream-http
    • 是否为瞬时恢复型错误
  4. 后续可考虑重试与退避策略

    • 尤其是官方链路的瞬时发送失败
    • 但前提是先把错误分类做对,避免误导排障方向

影响

这个问题不会只影响单个 provider 配置;只要走官方 Codex 直连链路,并且本机出海环境不稳定,就可能触发。当前主要问题是:故障分类和提示不准确,导致用户把网络问题误判为本地逻辑 bug。

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions