跳转到主要内容
排查 BetterToken API 错误时,同时查看 HTTP 状态码和响应正文。记录 error.message 中的请求 ID,修复认证或配置错误后再发送;只对已确认的临时故障重试。

排查前准备

准备好 Model ID、Base URL 和失败响应。在 BetterToken 控制台检查 Key 状态和当前余额。如果你还未成功完成模型请求,请先查看 SDK 示例或工具配置指南。

读取错误响应

BetterToken 使用 JSON 对象返回 API 错误。例如,未提供 Key 的请求可能返回:
即使 error.code 为空,也要读取 error.message。消息中的请求 ID 可用于定位这次失败尝试。未携带 Key 请求 /v1/models 会返回 401,不能用来验证模型能否生成回答。 联系支持前,请记录以下信息: 不要在截图、支持消息或共享日志中包含 BetterToken API Key。

检查 HTTP 状态码

下表按 HTTP/API 的通用含义和相关配置指南说明排查方向,并非 BetterToken 专有错误码清单。请根据实际响应选择处理方式。 协议与路径后缀错误请参阅 Base URL 常见问题。缓存相关问题请参阅缓存计费常见问题。

重试临时故障

确认 429 或服务端故障属于临时问题后,采用带随机抖动的指数退避,并限制尝试次数。如果返回了 Retry-After,按其要求等待;若超出重试预算,则退出循环,在循环外等待。SDK 重试与自建循环共享总尝试次数预算,因此实现自己的策略时应关闭 SDK 自动重试。 不要原样重试 400、401、403、余额或配置错误。客户端超时或流中断,不能证明请求在处理前就已失败。先检查控制台,尤其是图片生成或可能重复执行操作的工作流。 以下示例发送非流式 Chat Completions 请求,最多尝试四次。它们会重试 HTTP 500、502 和 503;在你确认 429 是临时限流前,默认关闭其重试。遇到超时、网络异常或 504 时停止,供你检查请求是否完成。每次重试前最多等待 30 秒。

准备请求

从模型广场复制当前可用的 Model ID,并替换两个占位值。请选择支持 Chat Completions 的文本模型。
Python 示例仅使用标准库。将 JavaScript 示例保存为 .mjs 文件,并用支持 fetch 和 AbortSignal.timeout 的 Node.js 版本运行。
如果响应正文表明存在持续的配置、余额或访问问题,即使状态码本身看似可以重试,也应停止循环并修复问题。将这个简短文本示例用于其他操作前,请按应用需要补充完成状态检查。

按现象查找指南

验证修复结果

使用之前出错的客户端、Base URL 和 Model ID,发送一个简短、非关键的请求。确认响应正常后,在控制台找到对应记录,核对模型、状态、Token 用量和费用,再继续较大的工作流。

常见问题

每个 429 都应该等待后重试吗?

请按用量限额排查常见问题判断需要检查什么,以及当前响应是否适合重试。

失败一次就该增加超时时间吗?

先确认是客户端、代理还是上游请求停止了等待。按超时配置调整,再用小请求验证。

相关文档