状态码与错误码

服务端使用业务错误码(code)表达结果,并与 HTTP 状态码一一对应。当前契约共 43 个错误码,约定如下:0 成功;1xxx 客户端/参数/权限类(除 1008 外不可重试);2xxx 服务端/依赖类(可重试);3xxx SDK 本地错误(不来自服务端)。

错误码概览​

分类错误码数量HTTP 状态说明
客户端 / 参数 / 权限(client)30400 / 401 / 403 / 404 / 410 / 429参数、权限、资源状态类错误;仅 1008 RATE_LIMITED 可重试
Open API 签名与开通(openapi)5400 / 401 / 403签名、时间戳、Nonce、服务开通与回调配置类错误
服务端 / 依赖(server)4500 / 502 / 503服务端内部与依赖错误,可退避重试
SDK 本地(sdk)4—客户端 SDK 本地错误,不出现在服务端响应中

客户端 / 参数 / 权限错误码​

错误码名称HTTP 状态可重试说明起始版本
1001INVALID_PARAMETER400否参数错误1.0.0
1002INVALID_TOKEN401否Token 无效或已过期1.0.0
1003FORBIDDEN403否无权限1.0.0
1004USER_NOT_FOUND404否用户不存在1.0.0
1005GROUP_NOT_FOUND404否群组不存在1.0.0
1006NOT_GROUP_MEMBER403否未加入群组1.0.0
1007MESSAGE_TOO_LARGE400否消息体过大(上限 5KB)1.0.0
1008RATE_LIMITED429是发送过于频繁1.0.0
1009GROUP_MUTED403否你已被禁言1.0.0
1010SENSITIVE_WORD400否内容包含敏感词1.0.0
1011BLOCKED403否已被对方拉黑或你已拉黑对方1.0.0
1012CHATROOM_NOT_FOUND404否聊天室不存在1.0.0
1013CHATROOM_CLOSED410否聊天室已销毁1.0.0
1014NOT_CHATROOM_MEMBER403否未加入聊天室1.0.0
1015MEMBERSHIP_LIMIT400否成员数量超出上限1.0.0
1016USER_BANNED403否账号已被封禁1.0.0
1017APP_DISABLED403否应用已停用1.0.0
1022RECALL_EXPIRED400否超过撤回时限1.0.0
1023MESSAGE_ALREADY_RECALLED400否消息已撤回1.0.0
1025QUOTA_EXCEEDED429是超出配额1.0.0
1026MESSAGE_NOT_EXPANDABLE400否消息不可扩展(发送时未开启可扩展,或会话类型不支持)1.1.0
1027EXPANSION_LIMIT_EXCEEDED400否消息扩展超出限制(单次 20 对 / 单条 300 对 / 键值长度)1.1.0
1028REACTION_INVALID400否回应标识非法(1-16 字符)1.1.0
1029REACTION_LIMIT_EXCEEDED400否单条消息回应种类超出上限(50)1.1.0
1030REACTION_USER_LIMIT_EXCEEDED400否单个回应参与用户超出上限(100)1.1.0
1031TAG_LIMIT_EXCEEDED400否单用户会话标签数超过上限(20)1.1.0
1032TAG_NOT_FOUND404否标签不存在1.1.0
1033TAG_CONVERSATION_LIMIT_EXCEEDED400否标签内会话数超过上限(1000)1.1.0
1034CONVERSATION_NOT_FOUND404否会话不存在(标签内置顶等操作要求会话已在标签内)1.1.0
1035MESSAGE_REJECTED_BY_CALLBACK403否发送前同步回调拒绝该消息(应用服务器返回 action=block,或降级配置为 block)1.1.0

Open API 签名与开通错误码​

错误码名称HTTP 状态可重试说明起始版本
1018INVALID_SIGNATURE401否签名错误1.0.0
1019TIMESTAMP_EXPIRED401否时间戳超出允许窗口1.0.0
1020NONCE_REPLAYED401否Nonce 重复1.0.0
1021SERVICE_NOT_ACTIVATED403否服务未开通1.0.0
1024CALLBACK_INVALID400否回调配置无效1.0.0

服务端 / 依赖错误码​

错误码名称HTTP 状态可重试说明起始版本
2001INTERNAL_ERROR500是服务端内部错误1.0.0
2002DEPENDENCY_UNAVAILABLE503是依赖服务不可用1.0.0
2003STORAGE_ERROR500是存储错误1.0.0
2004CALLBACK_DELIVERY_FAILED502是回调投递失败1.0.0

SDK 本地错误码​

错误码名称HTTP 状态可重试说明起始版本
3001SDK_NOT_CONNECTED—是长连接未就绪1.0.0
3002SDK_TIMEOUT—是请求超时1.0.0
3003SDK_NETWORK_ERROR—是网络错误1.0.0
3004SDK_UNSUPPORTED—否当前平台不支持该能力1.0.0

HTTP 状态码分布​

HTTP 状态含义错误码
400请求错误1001、1007、1010、1015、1022、1023、1024、1026、1027、1028、1029、1030、1031、1033
401未认证(签名/时间戳/Nonce)1002、1018、1019、1020
403禁止访问(权限/封禁/未开通)1003、1006、1009、1011、1014、1016、1017、1021、1035
404资源不存在1004、1005、1012、1032、1034
410资源已关闭/销毁1013
429请求过多(限频/配额)1008、1025
500服务端内部错误2001、2003
502回调等上游依赖失败2004
503服务暂不可用2002

重试建议​

场景建议
1008 RATE_LIMITED / 1025 QUOTA_EXCEEDED按指数退避重试,并降低请求速率;不要立即重试
2001 / 2002 / 2003 / 2004服务端或依赖暂时不可用,可退避重试;持续失败请携带 requestId 联系运维
1018 / 1019 / 1020签名、时间戳或 Nonce 错误;修正后重新签名,不要原样重试
1017 APP_DISABLED / 1021 SERVICE_NOT_ACTIVATED应用被禁用或服务未开通;需在控制台处理,重试无效
1xxx 其他参数/权限/资源状态错误;修正请求后重试
3xxxSDK 本地错误(如未连接、超时);按 SDK 文档处理后重试
不要重试不可重试错误

除 1008、1025 与 2xxx 外,其余错误码(尤其 1017、1021、1018-1020)原样重试不会成功;请先修正请求或完成控制台配置。

错误响应示例​

HTTP
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8

{
  "code": 1018,
  "msg": "invalid signature",
  "requestId": "req_7f3a9c"
}

相关说明​