状态码 404请求本身的问题(400 / 404)Claude CodeCodex CLICursorClineCherry StudioSDK / curl 直接调用

Claude Code 报 There's an issue with the selected model(404 模型不存在)怎么解决

报错原文
There's an issue with the selected model (claude-opus-6). It may not exist or you may not have access to it. Run /model to pick a different model.

Claude Code 提示 There's an issue with the selected model,或接口返回 404 Unknown model,大多是 model 标识写错(空格、点号、不存在的版本号),少数是 Base URL 多写了 /v1 导致整页 404。对照型号列表改名,或者修正地址。

3 步解决

  1. 1

    看清报错里括号中的型号名

    Claude Code 会把当前用的型号写在括号里。拿它去对照 https://www.ccsub.net/api/v1/models 返回的 id,或网站上的型号列表页。CCSub 的 404 报错里通常还会附一句「是不是想用 xxx」。

  2. 2

    改成正确的 model 标识

    在 Claude Code 里用 /model 重新选择,或修改 ANTHROPIC_MODEL、settings.json 里的 model、ANTHROPIC_DEFAULT_SONNET_MODEL / OPUS / HAIKU_MODEL 这几个变量。model 标识用短横线连接,例如 claude-opus-4-6,不要写成 opus 4.6。

  3. 3

    如果所有型号都报,检查 Base URL

    ANTHROPIC_BASE_URL 应为 https://www.ccsub.net,末尾不要加 /v1;OpenAI 兼容工具填 https://www.ccsub.net/api/v1。地址写错时服务器返回的是一整页 HTML 404,客户端会把它误报成型号问题。

同一个问题的其他写法

  • API Error: 404 {"type":"error","error":{"type":"not_found_error","message":"Unknown model \"opus 4.6\". Did you mean \"claude-opus-4-6\"? Model IDs use hyphens, e.g. claude-opus-4-6 (not \"opus 4.6\"). Full list: https://www.ccsub.net/api/v1/models | 未知模型 ..."}}
  • unexpected status 404 Not Found: <!DOCTYPE html><html lang="zh">...

这个报错有两种完全不同的来源

Claude Code 收到 404 时,通常会显示成 There's an issue with the selected model (...),Claude Code 的 GitHub 上也有不少人反馈:网关地址本身返回 404 时,同样会被报成型号问题。所以 404 可能来自两个地方,要先分清:

  1. 型号名不认识:请求到了 CCSub,但 model 标识不在支持列表里。CCSub 会返回 JSON 格式的 not_found_error,message 里写着 Unknown model "...",并尽量猜一个最接近的正确名字,后面附上完整列表的地址。
  2. 地址写错了:请求根本没有落到接口上,服务器返回的是网站的 404 页面(一整页 HTML)。这时不管换哪个型号都会报错,Claude Code 也会把它当成型号问题提示你。

区分方法很简单:如果换了好几个型号都报错,基本就是第 2 种。用下面的命令看一下返回的是 JSON 还是 HTML:

curl -sS -X POST https://www.ccsub.net/v1/messages -o /dev/null -w '%{http_code} %{content_type}\n'

正确的地址会返回 401 application/json(没带 Key 所以 401,说明接口存在);如果你把自己配置里的地址代进去,返回 404 text/html,就是地址写错了。

型号名写错的常见形式

  • 用了空格或点号:opus 4.6、claude-opus-4.6。CCSub 的 Claude 系列 model 标识统一用短横线,例如 claude-opus-4-6、claude-sonnet-4-6。
  • 写了还不存在的版本号,例如 claude-opus-6。
  • 从别的平台复制过来的名字带了平台前缀或自定义后缀。
  • 完全不是型号名,例如 pro、chat gpt 4o。CCSub 近 30 天的 404 日志里这类写法都出现过。

全部可用的 model 标识可以直接打开 https://www.ccsub.net/api/v1/models 查看,返回的每一项 id 都可以原样填进配置;也可以看网站上的 型号列表。

Claude Code 从哪里决定用哪个型号

按照 Claude Code 官方文档,型号可能来自以下几处,改了一处没生效时要逐个检查:

  • 会话里的 /model 和启动参数 --model,优先级最高;
  • 环境变量 ANTHROPIC_MODEL,会覆盖 settings 文件里的 model;
  • ~/.claude/settings.json 或项目 .claude/settings.json 里的 model 字段;
  • ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODEL:决定 sonnet、opus、haiku 这几个别名实际解析成哪个型号,haiku 那个还会用于后台任务。

如果你曾经在这些变量里填过别的平台的型号名,换到 CCSub 后要一起改掉。

Base URL 写错的常见形式

  • ANTHROPIC_BASE_URL=https://www.ccsub.net/v1:Claude Code 会自己在后面拼 /v1/messages,结果变成 /v1/v1/messages,返回 HTML 404。正确写法是 https://www.ccsub.net,不带 /v1。
  • 地址里带了语言前缀,例如 https://www.ccsub.net/zh。接口地址不需要语言前缀。
  • Codex、Cursor 等 OpenAI 兼容工具:Base URL 填 https://www.ccsub.net/api/v1。Codex 报 unexpected status 404 Not Found: <!DOCTYPE html>... 时,看报错末尾的 url 就能知道它实际请求了哪个地址。

改完之后关掉终端重新打开,再启动工具,让新的配置生效。

常见问题

去哪里看 CCSub 支持的全部 model 标识?

直接打开 https://www.ccsub.net/api/v1/models,返回的 JSON 里每一项的 id 就是可以填进配置的 model 标识;网站的型号列表页也能看到。

我只改了 /model,为什么后台还在报型号错误?

Claude Code 的后台任务(例如生成会话标题)用的是 haiku 别名对应的型号,由 ANTHROPIC_DEFAULT_HAIKU_MODEL 决定。如果你把这个变量设成了不存在的型号,主对话正常、后台任务也会报错。

gpt-image-1 这类生图型号为什么在对话里报错?

生图型号不能走对话或 Responses 端点,CCSub 会返回 400 并提示改用 https://www.ccsub.net/api/v1/images/generations。同理,「生图」分组的 Key 只能调生图接口,调用对话型号也会返回 400。

404 会扣费吗?

不会。型号校验在转发之前完成,不产生费用。

还是不行?

还没有 CCSub 账号?

注册后在控制台创建 API Key,填进 Claude Code、Codex 等工具即可使用,按实际用量计费。