状态码对照与覆盖

融云 iOS 状态码目录共 440 条(每条含码值、符号名、中文说明与排查建议,IMLib 与 IMKit 共用),已整理为兼容枚举;本项目运行时码表 errors.json 共 43 条(客户端 / SDK 34 条、服务端业务码 9 条)。两套编号体系不是一一对应:439 条兼容枚举、0 条运行时同码同义、1 条同码不同义。

口径

运行时以本项目码表为准:兼容枚举只用于旧常量兼容,线上排障请看运行时返回的 code / msg。

逐行对照见 状态码全量对照(440 条);同码不同义的行已单独标注。

码表扩充属于契约变更,随 IDL 版本发布;对照页由参考目录与 errors.json 自动生成,不手写行。

覆盖总览​

项数量说明
运行时码表(errors.json)43状态码页逐条说明
参考目录(融云 iOS)440兼容枚举全集
运行时同码同义0可直接按运行时语义处理
同码不同义1码值相同但语义不同,必须按本项目码表处理
兼容枚举439SDK 保留常量,运行时不会返回这些码值
逐行对照440状态码全量对照

运行时码表分布​

码段含义本项目收录说明
1xxx客户端 / 参数 / 权限类35入参、Token、权限、限频、配额等
2xxx服务端 / 依赖类4服务端业务与依赖错误
3xxxSDK 本地错误4连接未就绪、超时、网络、能力不支持
合计—43参考目录 440 条为兼容枚举

客户端 / SDK 码表(与状态码页一致)​

错误码符号名分类可重试说明
1001INVALID_PARAMETER客户端否参数错误
1002INVALID_TOKEN客户端否Token 无效或已过期
1003FORBIDDEN客户端否无权限
1004USER_NOT_FOUND客户端否用户不存在
1005GROUP_NOT_FOUND客户端否群组不存在
1006NOT_GROUP_MEMBER客户端否未加入群组
1007MESSAGE_TOO_LARGE客户端否消息体过大(上限 5KB)
1008RATE_LIMITED客户端是发送过于频繁
1009GROUP_MUTED客户端否你已被禁言
1010SENSITIVE_WORD客户端否内容包含敏感词
1011BLOCKED客户端否已被对方拉黑或你已拉黑对方
1012CHATROOM_NOT_FOUND客户端否聊天室不存在
1013CHATROOM_CLOSED客户端否聊天室已销毁
1014NOT_CHATROOM_MEMBER客户端否未加入聊天室
1015MEMBERSHIP_LIMIT客户端否成员数量超出上限
1016USER_BANNED客户端否账号已被封禁
1017APP_DISABLED客户端否应用已停用
1022RECALL_EXPIRED客户端否超过撤回时限
1023MESSAGE_ALREADY_RECALLED客户端否消息已撤回
1025QUOTA_EXCEEDED客户端是超出配额
1026MESSAGE_NOT_EXPANDABLE客户端否消息不可扩展(发送时未开启可扩展,或会话类型不支持)
1027EXPANSION_LIMIT_EXCEEDED客户端否消息扩展超出限制(单次 20 对 / 单条 300 对 / 键值长度)
1028REACTION_INVALID客户端否回应标识非法(1-16 字符)
1029REACTION_LIMIT_EXCEEDED客户端否单条消息回应种类超出上限(50)
1030REACTION_USER_LIMIT_EXCEEDED客户端否单个回应参与用户超出上限(100)
1031TAG_LIMIT_EXCEEDED客户端否单用户会话标签数超过上限(20)
1032TAG_NOT_FOUND客户端否标签不存在
1033TAG_CONVERSATION_LIMIT_EXCEEDED客户端否标签内会话数超过上限(1000)
1034CONVERSATION_NOT_FOUND客户端否会话不存在(标签内置顶等操作要求会话已在标签内)
1035MESSAGE_REJECTED_BY_CALLBACK客户端否发送前同步回调拒绝该消息(应用服务器返回 action=block,或降级配置为 block)
3001SDK_NOT_CONNECTEDSDK 本地是长连接未就绪
3002SDK_TIMEOUTSDK 本地是请求超时
3003SDK_NETWORK_ERRORSDK 本地是网络错误
3004SDK_UNSUPPORTEDSDK 本地否当前平台不支持该能力

差异与处理​

差异类别示例客户端处理
能力相关码(未纳入当前码表)RTC / 音视频、桌面端特有能力的错误按错误码原值展示通用提示;不要映射成 0 或网络错误
推送通道码APNs 投递失败、证书/环境错误服务端日志排查;客户端仅处理“未收到通知”的展示兜底
服务端业务细分码更多业务校验分支透传 code + msg,记录上报,等待码表扩充
旧版本码历史码已废弃 / 合并按当前码表处理;未知码保留原值

排障流程​

  1. 先看 `code` 与 `msg`,确认是客户端码还是服务端码。
  2. 客户端码:按「状态码」页的重试建议处理(1002 换 Token、3001 等连接、3002/3003 退避)。
  3. 服务端码:记录 requestId(若有)与服务端日志,按业务含义提示用户。
  4. 未知码:保留原值 + 场景 + 版本,提交文档反馈,等待码表扩充。

完整码表:IMLib 状态码;错误处理示例:状态码页。