文档错误与处理

错误与处理

汇总 Echo Token Station 返回的错误正文的格式,以及各种情况下(含视频生成)的 HTTP 状态码、错误正文和处理方法。

Echo 的 API 无法处理请求时,会返回 HTTP 状态码(表示结果的 3 位数字)和 JSON 格式的错误正文。

先确认这几点

  1. 接入地址:OpenAI 格式是 https://token.echohub.io/v1,Anthropic 格式是 https://token.echohub.io。调用路径里没有 /v1 时,即使密钥正确也会返回 404(返回的不是 JSON,是网站的 HTML 页面)
  2. API 密钥:在控制台的「APIキー」(API 密钥)里确认密钥没有被停用、使用上限还有剩余
  3. 余额:在控制台的「残高とチャージ」(余额与充值)里确认
  4. 模型 ID:确认与模型一览里的 ID 一致

错误正文的格式

按调用的端点的格式,以两种格式返回。

端点格式
/v1/messages(Anthropic 格式)与 Anthropic 的 API 相同的格式。error.type 里是错误的种类
其他(/v1/chat/completions、/v1/responses 等)与 OpenAI 的 API 相同的格式。error.code 里有时是错误的种类

Anthropic 格式的示例(密钥错误时):

JSON
{"type":"error","error":{"type":"authentication_error","message":"Invalid API key"}}

OpenAI 格式的示例(余额不足时):

JSON
{"error":{"message":"Insufficient balance","type":"api_error","param":"","code":"insufficient_quota"}}
  • 请用 HTTP 状态码,以及 error.type(Anthropic 格式)或 error.code(OpenAI 格式)判断错误的种类。message 的文字可能会变,不要用它来做程序的分支
  • 上游 API(实际运行模型的各厂商的 API)返回的错误,message 里有时会原样放入上游的文字
  • 各项目的顺序因错误而异
HTTP 状态码Anthropic 格式的 error.typeOpenAI 格式的 error.code(主要的)
400invalid_request_error空字符串、invalid_request、上游的值(例:context_length_exceeded)、视频生成的 task_not_found、task_not_ready、task_failed、upstream_error
401authentication_error空字符串
403permission_errorinsufficient_quota(余额或使用上限不足)
404not_found_error空字符串、视频生成的 task_not_found
410—artifact_gone(视频生成时,超过了提供方保留文件的期限)
429rate_limit_errorrate_limit_exceeded
500、502、503、504api_errorserver_error、service_unavailable、model_not_found
529overloaded_error—

OpenAI 格式的 error.type,在 Echo 自己返回的错误里主要是 api_error。原样返回上游的错误时,是上游的值。在视频生成的端点(/v1/videos)里,error.type 是与 HTTP 状态码对应的值(400 是 invalid_request_error,401 是 authentication_error,403 是 permission_error,404 和 410 是 not_found_error,500 以上是 api_error)。

各种情况的原因与处理

情况HTTP 状态码错误正文的 message处理方法
调用路径里没有 /v1404无(返回的不是 JSON,是网站的 HTML 页面)改正接入地址
调用路径里有两个 /v1404Invalid URL (POST /v1/v1/…)改正接入地址
调用了不支持的端点404Invalid URL (POST /v1/…)在 API 参考确认支持情况
密钥错误、没有、已停用、已过期、已删除,或使用上限已用完401Invalid API key在控制台确认密钥的状态和使用上限
余额不足403Insufficient balance充值
这次请求的估算金额超过密钥剩余的使用上限403This API key has reached its spending limit查看上限与速率限制
模型 ID 错误,或 Echo 不提供的模型503The model {モデル ID} does not exist or is not available确认模型 ID
请求无法作为 JSON 读取400Invalid request: invalid JSON request body改正请求
请求正文超过 128 MB400Invalid request: request body exceeds 128 MB: request body too large减小请求
缺少必填项目400包含项目名的文字(例:field messages is required)改正请求
输入超过模型的上下文长度(一次能处理的 token 数)400上游的文字(例:prompt is too long: 250000 tokens > 200000 maximum)减少输入
超过账号的速率限制429Rate limit exceeded for your account, please retry after 60 seconds等待 Retry-After 头里的秒数(60 秒)后重发
同一 IP 地址的请求太多429Too many requests from your IP address, please retry after the number of seconds in the Retry-After header等待 Retry-After 头里的秒数后重发
超过上游 API 的速率限制429The model service is temporarily rate limited, please retry after 60 seconds等待 Retry-After 头里的秒数(60 秒)后重发
连不上上游 API500The model service is temporarily unavailable, please try again later稍等一会儿后重发
上游 API 返回错误500上游的文字(例:Internal server error)稍等一会儿后重发
上游 API 返回的不是 JSON502Anthropic 格式是 The model service returned an error (HTTP 502), please try again later,OpenAI 格式是 The model service returned an invalid response, please try again later稍等一会儿后重发
上游 API 暂时不可用,或上游 API 那边 Echo 的账号出了问题503The model service is temporarily unavailable, please try again later稍等一会儿后重发。持续出现时请联系我们
Echo 的服务器暂时停止或繁忙(维护等)503The service is temporarily unavailable, please try again later稍等一会儿后重发
上游 API 拥挤529Overloaded(Anthropic 格式)稍等一会儿后重发
不属于以上任何一种、无法处理的请求400、403The request could not be completed附上请求 ID 联系我们

视频生成的错误

视频生成(/v1/videos)特有的错误。步骤和各模型能用的取值见视频生成。

情况HTTP 状态码和 error.code错误正文的 message处理
时长、分辨率等取值在这个模型里不能用400,invalid_request 或空字符串写明原因的英文(例:MiniMax-H3 duration must be an integer between 4 and 15 seconds)修改取值
提供方不受理请求400,upstream_errorThe model service rejected the request, check the parameters and try again确认取值和图片等的 URL
任务 ID 不对,或是别的账号的任务400(获取文件时是 404),task_not_foundTask not found确认 ID
完成前就获取文件400,task_not_readyThe video is not ready yetstatus 变成 completed 后再获取
获取失败任务的文件400,task_failedThe video generation failed重新提交
超过了提供方保留文件的期限410,artifact_goneArtifact content is no longer available无法获取。请重新提交

在提交时返回的错误不收费。生成失败的任务,查询进度时 status 是 failed,价格已全额退还。

要重试的错误

重试不重试
429、500、502、503(模型 ID 错误除外)、504、529400、401、403、404、410
  • 一边逐步延长等待时间,一边定好次数上限重试
  • 有 Retry-After 头时,至少等待那么多秒。账号速率限制和上游 API 速率限制导致的 429 带 Retry-After: 60,按 IP 地址限制导致的 429 带要等待的秒数,503 带 Retry-After: 5(上游 API 那边 Echo 的账号出问题造成的 503,有时是 Retry-After: 60)
  • 模型 ID 错误也以 503 返回。OpenAI 格式里 error.code 是 model_not_found。Anthropic 格式里 message 包含 does not exist or is not available
  • OpenAI 和 Anthropic 的 SDK 默认会对 429 和 500 以上的错误自动重试最多 2 次。模型 ID 错误时也会重试 2 次后才报错。Claude Code 会持续重试 1 分钟以上(Claude Code)

流式输出中途停止时

流式输出(一点一点接收回答的方式)会先返回 HTTP 200,再发送回答。之后上游 API 返回错误或连接断开时,会像下面这样收到(2026-09-27 时。修复预定:[ ])。

格式中途上游 API 返回错误时中途连接断开时怎么确认回答完整收到
Anthropic 格式收不到错误,回答在中途结束回答在中途结束收到 message_stop,并且 message_delta 的 stop_reason 有值
OpenAI 格式(Chat Completions)收到包含 error 的数据没有收到 finish_reason 有值的数据,就以 data: [DONE] 结束收到了 finish_reason 有值的数据
OpenAI 格式(Responses API)未确认未确认收到了 response.completed

没有完整收到时,请把同样的请求再发一次。连接断开时,也会收取断开前已生成部分的费用(价格与充值)。

联系我们时

Echo 的 API 处理过的响应,不论成功还是失败,都带有请求 ID(区分每一次调用的编号)。响应头的 X-Request-Id 和 request-id 里是同一个值。

使用的东西请求 ID 的查看方法
curl加上 -i 运行,看响应头里的 x-request-id
OpenAI 的 Python SDK响应的 _request_id
Anthropic 的 Python SDK响应的 _request_id

请附上下面的信息,通过 https://echohub.io/contact 联系我们。联系表单在 Echo AI Hub 的页面上,会员网站公开后才能使用。

  • 出错的时间(日本时间)
  • 请求 ID
  • 使用的模型 ID 和端点的路径
  • 密钥的名称(请不要发送密钥本身)
  • HTTP 状态码和错误正文

信息来源

内容来源确认日期
错误正文、HTTP 状态码、Retry-After、请求 ID 的响应头、没有 /v1 时的 404(2026-10-11 重新确认)、流式输出中途停止时的收到方式、SDK 的重试Echo 验证环境中的实测。使用统一了错误正文格式的中转设置,并用返回测试响应的服务器代替上游 API2026-09-27
速率限制的 429 的正文和 Retry-After、503 的 Retry-After、超过 128 MB 的请求的 400,用完上限、已停用、已过期、已删除的密钥返回 401Echo 验证环境中的实测(与正式环境相同的中转设置)2026-09-28
按 IP 地址的速率限制Echo 中转服务器的设置(2026-09-28 时)2026-09-28
OpenAI SDK 的自动重试和 _request_idhttps://github.com/openai/openai-python2026-09-27
Anthropic SDK 的 _request_id(从 request-id 头读取)https://github.com/anthropics/anthropic-sdk-python2026-09-27
Anthropic 格式的错误种类https://platform.claude.com/docs/en/api/errors2026-09-27
视频生成的错误正文和 HTTP 状态码Echo 验证环境中的实测(与正式环境相同的中转设置。用返回测试响应的服务器代替提供方的 API)2026-10-01