跳转到内容

模型接口 401、404、超时怎么判断

模型接入失败时,最容易出现的一种混乱是:

只要调不通
就统称为“模型报错”

401404timeout 这三类问题,其实根本不是同一层。

如果你分不清,排查就会越来越乱。

前置教程:国内模型配置排障总表
如果你还没有建立 API Key、Base URL、model、额度、网络这条基本排查顺序,先完成前置教程。

依据来源:OpenAI Codex 官方手册中关于 custom model providers、authentication、environment variables、network access、timeout 配置、troubleshooting 的说明,以及各类 OpenAI 兼容模型服务的常见错误分层。

学完后,你应该能做到:

  1. 一眼区分 401404timeout 分别优先查什么。
  2. 不再把认证错误和网络错误混在一起。
  3. 知道什么时候该查 API Key。
  4. 知道什么时候该查 Base URL 或 model。
  5. 知道什么时候该查网络、代理和服务商状态。
401 -> 优先看认证
404 -> 优先看地址或模型标识
timeout -> 优先看网络、代理、超时配置或服务商响应

你只要先把这条记住,排障方向就不会一开始就跑偏。

401 最常见的意思是:

你访问到了服务
但服务不认你的身份

所以 401 不是“连不上”,而是“连上了,但认证没通过”。

优先查下面几项:

  1. API Key 是否正确。
  2. API Key 是否已经失效、删除或过期。
  3. 是否把别的 token 当成 API Key。
  4. 环境变量名是否写错。
  5. provider 配置读到的认证方式是否和你预期一致。

如果你用的是自定义 provider,官方手册里也明确写了,认证方式可能来自:

  • requires_openai_auth = true
  • env_key = "..."
  • 或 provider 的自定义认证配置

所以 401 时要先确认“Codex 到底在用哪种认证方式”。

下面这些不是第一优先级:

  • 换模型
  • 重装 Codex
  • 重建项目
  • 修改大量配置

因为 401 的核心不是“模型不对”,而是“身份没过”。

404 最常见的意思是:

你请求的地址或目标资源不存在

在模型配置里,最常见的两类 404 是:

  1. Base URL 写错了
  2. model 写错了

例如本来应该填:

https://api.example.com/v1

结果写成了:

https://api.example.com/v1/chat/completions

这样很多工具层会再自己拼接路径,最后就变成错误地址。

例如:

  • 用了过期模型名
  • 少了前缀
  • 服务商需要接入点 ID,但你填成了产品名
  • 把教程里的示例模型名原样拿来用,但当前账号根本没有
  1. Base URL 是否只写到 provider 基础路径。
  2. 是否多写了 /chat/completions 之类的完整接口路径。
  3. model 是否来自当前服务商官方控制台或官方文档。
  4. 当前账号是否真的有这个模型或接入点。

timeout 通常不是认证问题,也不优先代表 model 名错误。

它更像是:

请求发出去了
但在预期时间内没有拿到正常响应

所以 timeout 更应该先查:

  1. 当前网络是否稳定。
  2. 是否存在代理、公司网络、TLS 证书问题。
  3. 服务商是否暂时响应慢。
  4. 当前超时配置是否太短。

官方手册里也提到,Codex 的 provider 或相关工具配置里存在 timeout / timeout_ms 一类超时参数。

所以 timeout 不一定是服务商挂了,也可能是你本地等待时间太短。

常见表现:

  • 浏览器能开网页
  • 但 CLI 请求不稳定
  • 偶发超时

尤其是跨地域或特定服务商节点时,更容易偶发超时。

这类常见于:

  • 高峰时段
  • 大模型推理繁忙
  • 某个地域节点不稳定

如果等待时间设得很短,复杂请求也容易被判成超时。

错误第一优先级第二优先级不要先做什么
401API Key / 认证方式环境变量不要先换模型
404Base URL / model账号权限不要先重装
timeout网络 / 代理 / 超时设置服务商状态不要先改一堆认证配置

一段可直接发给 Codex 的排障提示词

Section titled “一段可直接发给 Codex 的排障提示词”
我现在接模型时报错了,请帮我做只读排障。
错误现象:
【把 401 / 404 / timeout 或相关报错粘过来,但不要贴真实密钥】
要求:
1. 先判断这更像认证问题、地址/model 问题,还是网络/超时问题。
2. 不要修改文件。
3. 不要让我贴出真实 API Key。
4. 请按优先级列出排查顺序。
5. 如果怀疑是 Base URL 或 model,请明确告诉我该核对哪一项。
6. 如果怀疑是网络或超时,请明确告诉我不要先去改认证配置。

方向错了。

不一定,很多时候就是地址或 model 写错。

3. 一看到 timeout 就去重新生成 API Key

Section titled “3. 一看到 timeout 就去重新生成 API Key”

大概率不是第一优先级。

比如同时改 Key、改 URL、改模型、换服务商,最后自己都不知道到底是哪一步解决的。

正确做法永远是:

一次只验证一个怀疑点

如果是 OpenAI 兼容 provider,要特别注意什么

Section titled “如果是 OpenAI 兼容 provider,要特别注意什么”

官方手册里提到,自定义 provider 的关键组成包括:

  • base URL
  • wire API
  • authentication
  • headers

所以你在排查时,不能只盯着 model。

尤其是你接国内模型服务商时,很多问题其实卡在:

  • provider 配置结构
  • env_key 指向的环境变量
  • base_url 拼错
  • 自定义 header 或认证方式不匹配

做到这里,如果你已经形成下面这些判断习惯,就说明本篇起作用了:

  1. 401 先查认证。
  2. 404 先查地址或 model。
  3. timeout 先查网络、代理、超时设置。
  4. 不会再把这三类错误混成“模型不行”。
  5. 一次只验证一个怀疑点,不会同时乱改一堆配置。

这三篇排障主线写完后,下一波我建议继续补:

  • Codex 无法读取项目怎么判断
  • 端口被占用怎么处理
  • 中文路径和空格路径怎么排查