错误与排障
开放 API 的错误格式始终以 HTTP 状态和 error.code 为准。请记录 request_id、接口模板和状态码;不要记录 Authorization、完整邀请链接或远程信息。
| HTTP | code | 原因与处理 |
|---|---|---|
| 400 | HTTPS_REQUIRED |
使用正确 HTTPS 地址;不要先把密钥发给 HTTP 再等待跳转 |
| 400 | INVALID_JSON |
JSON 缺失、格式错误或不是对象 |
| 400 | CREDENTIALS_IN_URL |
移除 URL 凭证,使用 Authorization;已经进入日志的密钥应撤销 |
| 400 | BODY_NOT_ALLOWED |
撤销邀请不要发送正文 |
| 400 | IDEMPOTENCY_KEY_REQUIRED |
创建邀请缺少合法请求编号 |
| 401 | INVALID_API_KEY |
密钥缺失、错误、到期或被撤销;检查个人中心,停止盲目重试 |
| 403 | INSUFFICIENT_SCOPE |
当前密钥未授权该能力;由管理员重新创建所需范围的凭证 |
| 403 | PARTNER_SCOPE_MISMATCH |
URL 中的组织与密钥绑定组织不同 |
| 403 | PARTNER_MANAGER_REQUIRED |
创建者已不具备对应有效组织管理员身份 |
| 403 | PARTNER_ACCESS_FORBIDDEN |
工单桥接重新检查时发现组织或密钥授权已失效 |
| 403 | PERSONAL_KEY_REQUIRED |
组织密钥调用了个人权益接口 |
| 404 | RECORD_NOT_FOUND |
记录不存在或不属于此组织;不能解释为通过 |
| 404 | INVITE_UNAVAILABLE |
邀请不存在或不可见 |
| 404 | TICKET_NOT_FOUND |
工单不存在或关联校验失败 |
| 404 | NOT_FOUND |
未开放的路径或方法 |
| 409 | IDEMPOTENCY_CONFLICT |
同一请求编号对应的正文不同;查明原业务请求,不要自动换编号 |
| 409 | PLAYER_NOT_JOINED |
邀请尚未形成正式工单 |
| 409 | INVITE_UNAVAILABLE |
链接已使用、失效、撤销或状态已变化 |
| 409 | PARTNER_INACTIVE |
组织已归档或不支持当前操作 |
| 408 | REQUEST_TIMEOUT |
JSON 正文未在 5 秒内读取完成;发送完整的小型请求体 |
| 413 | BODY_TOO_LARGE |
请求超过允许字节数 |
| 414 | QUERY_TOO_LONG |
查询字符串超过 2048 字符 |
| 414 | PATH_TOO_LONG |
路径超过 512 字符 |
| 415 | JSON_REQUIRED |
JSON 请求的 Content-Type 不正确 |
| 415 | CONTENT_ENCODING_UNSUPPORTED |
不接受压缩请求体 |
| 431 | AUTH_HEADER_TOO_LONG |
Authorization 头超过 256 字符 |
| 422 | INVALID_RECORD_UUID |
USS 记录 UUID 格式不正确 |
| 422 | INVALID_GAME |
game 不为 minecraft 或 fps |
| 422 | INVALID_FIELD |
字符串长度或字符不合法 |
| 422 | UNKNOWN_FIELD / UNKNOWN_PARAMETER |
发送了不支持的 JSON 字段或记录筛选参数 |
| 422 | DUPLICATE_PARAMETER |
同一查询参数被重复传入 |
| 422 | INVALID_LIMIT / INVALID_PAGE / INVALID_CURSOR |
分页参数错误 |
| 422 | INVALID_DATE / INVALID_RESULT |
时间或结果筛选格式错误 |
| 429 | RATE_LIMITED |
遵守 Retry-After 并退避 |
| 429 | CONCURRENCY_LIMITED |
同一密钥、组织或账号的工单请求正在处理中,排队后重试 |
| 429 | TOO_MANY_INVITES |
组织已有 50 个有效待加入/处理中邀请,先处理或撤销旧邀请 |
| 503 | TICKET_SERVICE_UNAVAILABLE |
工单服务暂不可用,稍后有限重试 |
| 503 | RATE_LIMIT_UNAVAILABLE |
流量保护暂不可用,按 Retry-After 重试,不要绕过保护 |
| 500 | INTERNAL_ERROR |
保留 request_id,有限重试后联系支持 |
工单服务也可能返回更具体的 KOOK_RATE_LIMITED 等上游错误码。不要在程序中只允许上表列出的错误;为未知 4xx 和 5xx 提供安全分支。
创建邀请时超时
保留原 API Key、组织、Idempotency-Key 和正文重试。响应恢复后保存邀请 ID。不要根据连接超时就把业务状态写成“没有创建”,也不要重新收费或为同一业务连续生成新邀请。
个人中心错误
个人中心使用网站会话,错误展示可能使用 code、message 顶层字段,这是网站内部协议。第三方只应实现开放 API 的 error 信封。
常见配置错误包括 INVALID_PASSWORD、INVALID_TWO_FACTOR、INVALID_SCOPES、INVALID_EXPIRY、KEY_LIMIT、WEBHOOK_LIMIT_OR_ACCESS_CHANGED。
Webhook 失败
CHALLENGE_RESPONSE_INVALID:接收端未返回有效且足够小的 JSON。CHALLENGE_MISMATCH:challenge 没有原样回显。HTTP_3xx:回调发生重定向,请填写最终 HTTPS 地址。HTTP_4xx:检查路由、验签原始字节、时钟和请求体大小限制。HTTP_5xx:接收端处理失败,平台会重试业务事件。INVALID_WEBHOOK_URL/UNSAFE_WEBHOOK_DESTINATION:地址或 DNS 未通过公网目标检查。CONNECTION_FAILED/WEBHOOK_UNREACHABLE:DNS、TLS、网络或超时问题。ACCESS_REVOKED:回调创建者已失权或订阅已停用,待投递被取消。
支持定位时提供事件 ID、投递状态和 request_id,不要把 API Key 或 Webhook 签名密钥发送给支持人员。