## 问题描述
在 `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 可用不能证明客户端身份已完整适配。
期望行为
- OpenAI OAuth 转发使用满足 GPT-5.6 最低要求的 Codex 客户端身份。
- Luna 在 Responses 和 Chat Completions bridge 中可以正常调用。
- HTTP、compact、WebSocket、账号测试和模型清单使用统一版本来源。
- 合法的新模型不应因为客户端身份过旧而触发 30 分钟冷却。
修复建议
- 将 Codex 版本集中到单一常量或配置来源,并更新到至少
0.144.0。
- 同步更新 fallback/forced User-Agent、compact
Version、模型探测版本和 WebSocket 路径。
- 增加 GPT-5.6 三模型的转发测试。
- 可考虑根据模型清单的
minimal_client_version 管理版本,避免固定值再次过期。
相关 issue
模型 ID 本身正确,OpenAI 官方模型页也是
gpt-5.6-luna:https://developers.openai.com/api/docs/models/gpt-5.6-luna
环境
v0.1.149/v1/responses、/v1/chat/completionshttps://chatgpt.com/backend-api/codex/responses最小复现
相同请求仅替换模型时,Sol 和 Terra 返回 200,Luna 返回上游 404。
/v1/chat/completions转换到 Responses 后结果相同。连锁影响
404 会被
HandleUpstreamModelNotFound识别,并为该账号设置 30 分钟模型级冷却:账号总体状态仍为正常,但 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:相关文件:
backend/internal/service/openai_gateway_service.gobackend/internal/service/account_usage_service.go只读对照结果:
client_version=0.137.0:模型清单不返回 GPT-5.6client_version=0.144.1:返回 Sol、Terra、Luna提交
6cea1c35 feat: 适配 OpenAI 新模型 gpt-5.6-sol/terra/luna已增加模型名称、映射和计费配置,但没有同步更新 Codex 客户端版本身份。Sol/Terra 在旧或通用客户端身份下目前仍被上游兼容放行;Luna 则返回 404,因此 Sol/Terra 可用不能证明客户端身份已完整适配。
期望行为
修复建议
0.144.0。Version、模型探测版本和 WebSocket 路径。minimal_client_version管理版本,避免固定值再次过期。相关 issue