错误
每次失败都会返回统一的 JSON 结构,其中包含稳定的机器可读代码、用于细化的可选原因、面向用户的消息,以及供技术支持使用的请求 ID。客户端应根据代码和原因进行判断,而不是根据消息文本。
json
{ "code": "conflict", "reason": "version_exists", "message": "…", "requestId": "…" }代码
| 代码 | HTTP 状态 | 含义 |
|---|---|---|
invalid_input | 400 | 请求格式有误或某个值不被允许;请修正请求后再重新发送。 |
not_found | 404 | 对象不存在,或调用方无权查看它。 |
conflict | 409 | 请求与当前状态冲突;请重新读取状态,再决定如何处理。 |
forbidden | 403 | 凭据有效,但缺少执行此操作所需的权限。 |
unauthorized | 401 | 没有有效凭据:缺失、错误、已过期或已被撤销。 |
capacity_exceeded | 507 | 将超出配额、容量或某项限制。 |
integrity_mismatch | 422 | 字节与声明的大小或 SHA-256 不一致。 |
busy | 503 | 服务器已达到其准入上限;请在 Retry-After 之后重试。 |
unavailable | 503 | 某个依赖项当前不可用;请在 Retry-After 之后重试。 |
rate_limited | 429 | 尝试次数过多;请等待 Retry-After。 |
read_only | 405 | 此服务器或网关不接受变更(读取网关或镜像)。 |
internal | 500 | 服务器发生意外缺陷;请求 ID 有助于支持人员找到它。请勿盲目重试。 |
原因
| 代码 | 原因 | HTTP 状态 | 含义 |
|---|---|---|---|
invalid_input | validation | 400 | 某个字段缺失,或其值超出规则;details 会指明该字段。 |
invalid_input | malformed_json | 400 | 请求体不是有效的 JSON。 |
invalid_input | body_too_large | 413 | 请求体超过此操作所接受的大小。 |
invalid_input | unsupported_media_type | 415 | Content-Type 不是此操作接受的类型。 |
invalid_input | method_not_allowed | 405 | 路径存在,但不支持此方法。 |
invalid_input | range_not_satisfiable | 416 | 请求的字节范围超出了内容范围。 |
not_found | route_not_found | 404 | 没有这样的路由。 |
conflict | upload_expired | 409 | 上传会话在完成之前已过期。 |
conflict | upload_state | 409 | 上传所处的状态不允许执行此步骤。 |
conflict | revision_mismatch | 409 | 期望的修订版本不是当前版本(另一项变更先发生了)。 |
conflict | version_exists | 409 | 此版本已用不同的内容发布过。 |
conflict | part_mismatch | 409 | 某个分片与其声明的大小或 SHA-256 不一致。 |
conflict | parts_incomplete | 409 | 上传的分片尚未全部到达。 |
conflict | idempotency_mismatch | 409 | Idempotency-Key 之前曾用于不同的请求。 |
conflict | already_exists | 409 | 具有此名称或路径的对象已存在。 |
conflict | stage_limit | 409 | 该制品的阶段数已达上限。 |
conflict | state_conflict | 409 | 对象所处的状态不允许此变更。 |
conflict | mirror_read_only | 409 | 该仓库是镜像;它只能通过同步来变更。 |
forbidden | permission_missing | 403 | 凭据缺少此操作所需的权限(action)。 |
forbidden | read_only_token | 403 | 只读的个人令牌不能更改任何内容。 |
forbidden | credential_revoked | 403 | 密钥或令牌已被撤销。 |
forbidden | session_required | 403 | 只有已登录的账户会话才能执行此操作,密钥不行。 |
forbidden | administrator_required | 403 | 只有管理员才能执行此操作。 |
forbidden | registration_disabled | 403 | 此服务器已关闭自助注册。 |
forbidden | origin_not_allowed | 403 | 浏览器的源(origin)不在 ARKVORY_CORS_ORIGINS 中。 |
unauthorized | invalid_credentials | 401 | 账户名称或密码错误。 |
unauthorized | current_password_invalid | 401 | 当前密码错误。 |
unauthorized | credential_missing | 401 | 请求未携带凭据。 |
unauthorized | credential_invalid | 401 | 该凭据不是有效的密钥、令牌或会话。 |
unauthorized | session_expired | 401 | 会话已过期;请重新登录。 |
unauthorized | token_expired | 401 | 个人令牌已过期。 |
capacity_exceeded | storage_quota | 507 | 将超出仓库配额。 |
capacity_exceeded | storage_full | 507 | 服务器磁盘只剩预留的可用空间,无法再容纳更多内容。 |
capacity_exceeded | account_limit | 507 | 账户数量已达上限。 |
capacity_exceeded | group_limit | 507 | 组的数量已达上限。 |
capacity_exceeded | membership_limit | 507 | 组成员数量已达上限。 |
capacity_exceeded | grant_limit | 507 | 授权数量已达上限。 |
capacity_exceeded | key_limit | 507 | 密钥数量已达上限。 |
capacity_exceeded | token_limit | 507 | 个人令牌数量已达上限。 |
capacity_exceeded | delegation_limit | 507 | 委派数量已达上限。 |
capacity_exceeded | catalog_limit | 507 | 将超出此安装的目录容量。 |
capacity_exceeded | queue_full | 507 | 传输队列已满。 |
capacity_exceeded | transfer_limit | 507 | 调用方的传输数已达允许的上限。 |
busy | request_limit | 503 | 服务器处理的请求数已达其准入的上限。 |
busy | download_queued | 503 | 下载正在队列中等待;请在 Retry-After 之后再来。Arkvory-Queue-Position 和 Arkvory-Starts-At 给出位置和预计开始时间。 |
unavailable | feedback_disabled | 503 | 此服务器已关闭反馈功能。 |
unavailable | hub_unreachable | 503 | 无法连接更新中心(hub)。 |
unavailable | replication_degraded | 503 | HA 集群中完整副本的数量少于写入所需,因此更改未被确认;请在 Retry-After 之后重试。下载仍可正常进行。 |
rate_limited | login_attempts | 429 | 登录尝试次数过多;请等待。 |
rate_limited | registration_attempts | 429 | 注册尝试次数过多;请等待。 |
rate_limited | password_attempts | 429 | 密码尝试次数过多;请等待。 |
rate_limited | feedback_attempts | 429 | 反馈报告过多;请等待。 |