错误码
错误响应是带有稳定 code 和可读 message 的 JSON。请根据 code 判断,不要依赖可能变化的 message。
{ "error": { "code": "alert_too_long", "message": "…", "field": "alert.title", "limit": 100, "actual": 128 } }| 状态码 | 是否重试 |
|---|---|
400、413、422 |
否。先修正请求,原样重发只会得到同样的错误。 |
401、404 |
否。链接或 token 错误或已失效。 |
429、503 |
是,等待 Retry-After 响应头指定的秒数后重试。 |
其他 5xx |
是,并逐步拉长间隔。带上 idempotency_key,重试就不会产生第二条提醒。 |
| 状态码 | 错误码 | 接口 | 含义和处理 |
|---|---|---|---|
| 400 | invalid_json |
发送 | 请求体不是合法的 JSON 或 UTF-8。 |
| 401 | invalid_send_url |
发送 | 发送链接错误、已重新生成、已撤销、已暂停,或所属频道已删除。请从应用中复制当前链接。 |
| 401 | unauthorized |
回执 | Authorization 请求头里不是发送链接的 token。 |
| 404 | not_found |
回执 | 这个发送链接没有发送过此 ID 的回执。 |
| 404 | invalid_heartbeat_url |
心跳 | 心跳链接错误、已重新生成或删除,或所属频道已删除。 |
| 413 | request_too_large |
发送 | 请求体超过 64 KB。 |
| 422 | invalid_target |
发送 | 缺少 alert.title,或字段值无效、含有不允许的字符。field 指明字段。 |
| 422 | alert_too_long |
发送 | 字段超过限制。错误中包含 field、limit 和 actual。 |
| 422 | invalid_alert_level |
发送 | level 不是 urgent、high、normal 或 silent。 |
| 422 | invalid_emergency |
发送 | emergency.retry_seconds 小于 30,或 expire_seconds 小于 retry_seconds 或大于 10800。 |
| 422 | invalid_callback |
发送 | 对无法确认的提醒请求了 callback。 |
| 422 | callback_not_configured |
发送 | 请求了 callback,但频道没有启用回调。 |
| 422 | encryption_required |
发送 | 频道只接受加密提醒。 |
| 422 | invalid_encrypted_message |
发送 | 加密信封不完整或格式错误。 |
| 429 | limit_exceeded |
发送 | 达到了发送链接的频率限制。 |
| 429 | rate_limited |
全部 | 来自你的网络地址的请求过多。 |
| 500 | create_failed |
发送 | 提醒未能保存。用同一个 idempotency_key 重试。 |
| 503 | server_busy |
全部 | 服务器同时处理的请求过多。稍后重试。 |