错误代码
每个错误都使用统一封装并含稳定的机器可读 code。请按 error.code 分支,而不是仅依赖可变的 message 或 HTTP 状态。
{
"error": {
"code": "validation_failed",
"message": "请求验证失败。",
"request_id": "req_01HQ...",
"details": [
{
"field": "territories",
"issue": "zod_invalid_format",
"message": "值的格式无效。"
}
]
}
}request_id 回显您的 X-NU-Request-Id 或服务器生成值。联系支持时请提供。验证错误会包含 details。
代码参考
| 代码 | HTTP | 含义 | 典型操作 |
|---|---|---|---|
invalid_api_key | 401 | 密钥缺失、格式错误、未知或过期 | 发送适用于正确环境的有效 Authorization: Bearer 密钥 |
api_key_revoked | 401 | 密钥已吊销 | 替换为活动密钥 (04) |
invalid_approval_token | 401 | 批准令牌无效、过期或已用于 bootstrap | 请求新批准令牌并仅 bootstrap 一次 (04) |
invalid_application_token | 401 | 申请引用或状态令牌错误/过期 | 使用初始申请响应中一次性显示的状态凭据 |
missing_scope | 403 | 密钥缺少所需作用域 | 授予作用域;参见作用域表 (03) |
production_key_required | 403 | Sandbox 密钥调用了仅限 Production 的端点 | 使用 nsp_live_ 密钥重试结算请求 |
organization_not_approved | 403 | 组织尚未获批 | 等待批准或完成注册 (02) |
resource_not_found | 404 | 资源不存在或对您的组织不可见 | 检查 ID 和组织访问权限 |
validation_failed | 422 | 请求正文或参数验证失败 | 修正 details 中列出的字段 |
rate_limit_exceeded | 429 | 达到每密钥速率限制 | 按 Retry-After 退避 (12) |
license_not_active | 403 | 无 ACTIVE 协议授权此次播放 | 激活协议或启用其 Production API (06) |
territory_not_allowed | 403 | 缺少 Production country,或协议/密钥不允许 country、origin 或 IP | 发送允许的 Production country;配置时包含允许 origin,并检查 allowed_ips |
episode_not_licensed | 403 | 剧集未就绪、无就绪视频资产或不在授权资产集合 | 授权就绪视频资产或使用符合条件的就绪剧集 |
duplicate_event_id | 409 | event_id 已接受;幂等空操作 | 视为成功;不要改用其他 ID 重试 |
invalid_playback_session | 400 | 未知或无效播放会话 | 使用播放 API 返回的 playback_session_id |
playback_concurrency_limit | 429 | 该观众与协议或作品的活动会话过多 | 吊销现有会话,或等待其完成/过期后再签发 |
settlement_not_disputable | 409 | 结算不处于可质疑状态 | 仅在状态允许时提出异议 (09) |
conflict | 409 | 资源已存在,或并发/处理中请求占用操作 | 重试幂等请求或核对现有资源 |
service_unavailable | 503 | 所需服务暂时不可用。 | 使用指数退避重试幂等调用。 |
internal_error | 500 | 意外服务器错误 | 使用退避重试;若持续,请携 request_id 联系支持 |
处理指南
- 401 — 修复身份验证;不要盲目重试。
- 403 — 涉及作用域、组织或权利的授权问题。在底层权限变化前,重试无效。
- 404 — 检查 ID 和组织可见性。
- 422 — 检查
details[]并修正请求。 - 409 — 取决于代码:
duplicate_event_id表示事件已接受,应视为成功;settlement_not_disputable表示当前不允许此操作;conflict表示资源已存在或并发请求处理中。请按情况重试幂等调用或核对现有资源。 - 429 — 遵守
Retry-After;参见 速率限制。 - 5xx — 使用指数退避重试幂等调用。
数据库约束映射
已知数据库错误映射为清晰的 4xx 响应,而非通用 500,包括针对并发删除行的先读后写竞争:
| 数据库条件 | HTTP | error.code |
|---|---|---|
| 写入时找不到行(P2025) | 404 | resource_not_found |
| 唯一约束冲突(P2002) | 409 | conflict |
| 外键约束冲突(P2003) | 422 | validation_failed |