Skip to content

OpenAI OAuth 转发 gpt-5.6-luna 返回 404,Codex 客户端版本仍固定为 0.125.0 #3895

Description

@wzyonline-1999
## 问题描述`v0.1.149` 使用 OpenAI OAuth 账号作为上游时:

- `gpt-5.6-sol`:正常
- `gpt-5.6-terra`:正常
- `gpt-5.6-luna`:上游返回 404

错误内容:

```json
{
  "error": {
    "message": "Model not found gpt-5.6-luna",
    "type": "invalid_request_error",
    "param": "model",
    "code": null
  }
}

模型 ID 本身正确,OpenAI 官方模型页也是 gpt-5.6-luna

https://developers.openai.com/api/docs/models/gpt-5.6-luna

环境

  • sub2api:v0.1.149
  • 账号类型:OpenAI OAuth
  • 入站接口:/v1/responses/v1/chat/completions
  • 上游接口:https://chatgpt.com/backend-api/codex/responses
  • 非流式请求

最小复现

POST /v1/responses
Content-Type: application/json
Authorization: Bearer <sub2api-key>

{
  "model": "gpt-5.6-luna",
  "input": "Reply with exactly OK",
  "stream": false
}

相同请求仅替换模型时,Sol 和 Terra 返回 200,Luna 返回上游 404。/v1/chat/completions 转换到 Responses 后结果相同。

连锁影响

404 会被 HandleUpstreamModelNotFound 识别,并为该账号设置 30 分钟模型级冷却:

upstreamModelNotFoundCooldown = 30 * time.Minute

账号总体状态仍为正常,但 Luna 会被调度器临时排除。多个账号依次返回 404 后,当前请求最终收到 502;冷却期间再次请求可能收到 503 Service temporarily unavailable

排查结果

OpenAI Codex 0.144.1 官方模型目录中,三个 GPT-5.6 模型的 minimal_client_version 均为 0.144.0

https://github.com/openai/codex/blob/rust-v0.144.1/codex-rs/models-manager/models.json

当前 sub2api 仍在多个位置使用 0.125.0

codexCLIUserAgent = "codex_cli_rs/0.125.0 (Ubuntu 22.4.0; x86_64) xterm-256color"
codexCLIVersion = "0.125.0"
openAICodexProbeVersion = "0.125.0"

相关文件:

  • backend/internal/service/openai_gateway_service.go
  • backend/internal/service/account_usage_service.go
  • HTTP Responses、Chat Completions bridge、compact、WebSocket 和账号测试路径

只读对照结果:

  • client_version=0.137.0:模型清单不返回 GPT-5.6
  • client_version=0.144.1:返回 Sol、Terra、Luna

提交 6cea1c35 feat: 适配 OpenAI 新模型 gpt-5.6-sol/terra/luna 已增加模型名称、映射和计费配置,但没有同步更新 Codex 客户端版本身份。

Sol/Terra 在旧或通用客户端身份下目前仍被上游兼容放行;Luna 则返回 404,因此 Sol/Terra 可用不能证明客户端身份已完整适配。

期望行为

  1. OpenAI OAuth 转发使用满足 GPT-5.6 最低要求的 Codex 客户端身份。
  2. Luna 在 Responses 和 Chat Completions bridge 中可以正常调用。
  3. HTTP、compact、WebSocket、账号测试和模型清单使用统一版本来源。
  4. 合法的新模型不应因为客户端身份过旧而触发 30 分钟冷却。

修复建议

  • 将 Codex 版本集中到单一常量或配置来源,并更新到至少 0.144.0
  • 同步更新 fallback/forced User-Agent、compact Version、模型探测版本和 WebSocket 路径。
  • 增加 GPT-5.6 三模型的转发测试。
  • 可考虑根据模型清单的 minimal_client_version 管理版本,避免固定值再次过期。

相关 issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions