YoukaRequestError,以及用于以非成功状态结束的异步任务的 YoukaTaskError。两者都继承自 Error,并携带结构化字段,便于你根据 code、status 和是否可重试进行分支处理。
YoukaRequestError
在发生 HTTP 错误、请求校验失败或响应格式不正确时抛出。
字段
机器可读的错误码,例如
INVALID_REQUEST、UNAUTHORIZED、UPLOAD_FAILED。面向人的错误描述。
HTTP 状态码(如果可用)。
当 SDK 认为该错误值得重试时为
true(例如触发限流、短暂的服务器错误、幂等重放仍在进行中)。由服务器提供的详情;对于校验错误,通常是 Zod 的 issue 列表。
常见 code
| Code | 原因 | 可重试? |
|---|---|---|
INVALID_REQUEST | 请求体在发送前未通过 schema 校验。 | No |
UNAUTHORIZED | 缺少或无效的 API key。 | No |
NOT_FOUND | 资源不存在或你没有访问权限。 | No |
CONFLICT | 版本冲突(HTTP 409)。 | Yes |
TOO_MANY_REQUESTS | 触发速率限制(HTTP 429)。 | Yes |
INTERNAL_SERVER_ERROR | 短暂的服务器故障(HTTP 500)。 | Yes |
IDEMPOTENT_REPLAY_IN_PROGRESS | 原始请求仍在使用相同的幂等键运行中(HTTP 202)。 | Yes |
INVALID_RESPONSE | 服务器返回的 body 与预期 schema 不匹配。 | No |
UPLOAD_FAILED | Signed URL 上传返回非 2xx。 | 取决于 status |
YoukaTaskError
当底层 task 或 export 以 failed、cancelled 或 timed-out 结束时,由 client.tasks.wait(...)、client.projects.wait(...) 和 client.exports.wait(...) 抛出。
字段
直接映射到任务的终态状态。
服务器提供的任务错误信息,或生成的兜底信息。
任务的终态状态。
失败时刻的完整 task payload。适用于日志记录与面向用户的错误提示。
重试模式
将retryable 与幂等键结合,构建一个安全的重试循环:
中止与取消
中止请求会抛出标准AbortError —— 而不是 YoukaRequestError。请显式检查它:
下一步
- Tasks — wait 辅助方法与高级任务轮询
- Authentication — 构造函数选项与 signals
- API errors — 原始 HTTP 中的相同 code
