跳转到内容

上游 HTTP 404 - DeepSeek / Codex 在 cc-switch 中的常见原因

Quick fix

根据具体场景解决:如果是端点路径问题,请将 API 地址补全为完整的 API root(如 .../v1);如果是模型能力问题,请切换到支持图片的模型或等待 cc-switch 修复。

报错原文
unexpected status 404 Not Found: CC Switch local proxy failed while handling Codex endpoint /responses. Provider: DeepSeek; model: deepseek-v4-pro; upstream_status: HTTP 404; cause: 上游错误 (404):, url: http://127.0.0.1:15721/v1/responses

此错误通常由以下三种机制导致:

1. **API 路径不完整**:当使用自定义 OpenAI Chat Completions 端点时,cc-switch 不会自动追加 `/v1` 路径。如果配置的是 `https://api.deepseek.com` 而非 `https://api.deepseek.com/v1`,请求会被发送到错误路径(如 `/chat/completions` 而非 `/v1/chat/completions`),导致 404。

2. **模型不支持请求类型**:DeepSeek 官方 API 是纯文本模型,不支持图片输入。当会话中包含图片时,会返回 `No endpoints found that support image input`(HTTP 404)。此外,DeepSeek 官方端点不支持 Codex 的 `/responses` 接口,仅支持 `/chat/completions`。

3. **模型目录字段冲突**:在 cc-switch 3.19.1 中,`~/.codex/cc-switch-model-catalog.json` 对同一模型存在矛盾声明(`input_modalities` 包含 `image` 但 `supports_image_detail_original` 为 `false`),导致图片整流器误判模型支持图片而未剥离图片块,转发后被上游拒绝。

  1. 检查 API 端点配置:确保 Codex 的自定义 OpenAI 端点包含完整的 API root 路径(如 `https://api.deepseek.com/v1` 或 `https://opencode.ai/zen/go/v1`),而不仅仅是域名。cc-switch 会将 base_url 视为实际的 API root,只追加 `/chat/completions`,不会自动补全 `/v1`。

    Codex 供应商设置中的 Base URL
    https://api.deepseek.com
    https://api.deepseek.com/v1
  2. 针对 DeepSeek 官方 API:由于 DeepSeek 不支持 `/responses` 接口,请使用 cc-switch 内置的 DeepSeek 预设(该预设使用 Chat Completions 路由接管),而不是手动配置 OpenAI 兼容端点。

  3. 处理图片导致的 404:如果错误信息为 `No endpoints found that support image input`,说明当前模型(如 deepseek-v4-flash)不支持图片输入。请切换到支持图片的模型(如小米 MiMo v2.5),或从对话历史中移除图片。

  4. 修复模型目录字段冲突(cc-switch 3.19.1):如果因 `input_modalities` 与 `supports_image_detail_original` 冲突导致图片未被剥离,可手动编辑模型目录文件,将对应模型的 `input_modalities` 改为 `["text"]`。

    ~/.codex/cc-switch-model-catalog.json
    "input_modalities": ["text", "image"]
    "input_modalities": ["text"]
  5. 升级 cc-switch:如果遇到 Codex 图片上传返回 HTTP 400(`unknown variant image_url`),请升级到 v3.16.4 或更高版本,该版本新增了 Codex 图片矫正器(Image Rectifier),可自动剥离图片块并重试。

ToolCodex
Versioncc-switch 3.14.1 - 3.19.1
PlatformsWindowsmacOS
为什么 DeepSeek 官方 API 在 Codex 里报 404,但 Claude Code 里正常?
DeepSeek 官方端点仅支持 `/chat/completions` 接口,不支持 Codex 默认使用的 `/responses` 接口。请在 cc-switch 中使用内置的 DeepSeek 预设(走 Chat Completions 路由),而不是直接配置 `https://api.deepseek.com` 作为 OpenAI 兼容端点。
上传图片后报 `No endpoints found that support image input` 怎么办?
这是因为 DeepSeek 等模型是纯文本模型,不支持图片输入。请切换到支持图片的模型(如小米 MiMo v2.5),或删除对话中的图片。如果是 cc-switch 3.19.1 版本,可能是模型目录字段冲突导致图片未被剥离,可尝试手动修改 `~/.codex/cc-switch-model-catalog.json` 中对应模型的 `input_modalities` 为 `["text"]`。
端点已经填写了 `https://api.deepseek.com`,为什么还是 404?
cc-switch 不会自动为自定义 OpenAI 端点追加 `/v1` 路径。请将 Base URL 补全为完整的 API root,例如 `https://api.deepseek.com/v1` 或 `https://opencode.ai/zen/go/v1`。
Codex 桌面端模型列表显示为空,且 `/v1/models` 返回 404,如何解决?
这是 Codex 桌面端的限制:它会根据是否登录官方 ChatGPT 账号来决定是否显示第三方模型。请先在 Codex 桌面端登录一次官方 ChatGPT 账号,然后在 cc-switch 设置中开启「切换第三方时保留官方登录」,并确保第三方供应商已开启本地路由/路由接管,最后完全退出并重启 Codex。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。