状态码/错误码

更新时间: 2023/08/18 08:49:20

在调用 SDK API 的过程中,SDK 可能会返回错误码或状态码,您可以根据错误码或状态码判断当前 SDK 或任务的状态。如果遇到未知的错误码,请联系技术支持排查。

SDK 在运行过程中,可能通过如下方式返回错误码或警告码:

  • 在方法调用返回的结果对象NIMResult中包含一个 code 整型数值,这个数值就对应着错误码与警告码。具体可以参考 NIMResultCode 中的错误码定义。
  • 通过回调报告错误码或警告码。

状态码列表

code 详细描述
-1 操作失败
-2 SDK 内部错误,错误详情参见返回的errorDetails
-3 SDK 内部错误,错误详情参见返回的errorDetails
0 操作成功
200 操作成功
302 密码不正确
310 登录ip或mac被禁
315 内部帐户不允许在该地址登陆
317 版本号太旧,需要升级
403 应用被封禁
404 目标(对象或用户)不存在
408 操作超时
414 参数错误
415 网络连接出现问题
416 操作太过频繁
417 对象已经存在
422 帐号被禁用
431 设备不在信任设备表里
500 服务器内部错误
502 操作数据库失败
503 服务器太忙
508 超过期限
509 已经失效
515 红包功能不可用
700 清空会话未读数部分成功
801 已达到人数限制
802 没有权限
803 群不存在
804 用户不在群里面
805 群类型不对
806 群数量达到上限
807 群成员状态不对
808 申请成功
809 用户已经在群里了
810 邀请成功
813 部分邀请成功,同时会有失败列表
816 部分请求成功,同时会有失败列表
999 装包失败,内部错误
998 解包失败,内部错误
7101 被接收方加入黑名单

状态码详解

用户名或密码错误302

当客户端SDK执行登录后,回调状态码302时,请检查当前的AppKey、accid(accout)与token三者是否一一对应。较常见的原因如:token不正确或不是最新、该AppKey下无此accid等。
详情参见关于IM登录失败-返回302

非法操作或没有权限403

当执行非法操作时,会返回状态码403。常见的非法操作如下:

  • 如果网易云信控制台配置非好友不允许发消息,客户端SDK向非好友发消息会返回403。
  • 聊天室业务中,要将管理员变成普通用户,直接取消其管理员权限即可。不能直接将管理员设置为 普通成员,否则可能会返回403。
    聊天室业务中,只有创建者可以对管理员进行操作,管理员不能对创建者和其他管理员进行操作,否则可能会返回403。
  • 第三方回调业务中,如果第三方回调功能不放行某条消息,则发送方SDK会回调返回403。
    被好友拉黑后,给对方发消息,也会先进行第三方回调。如果不放行,SDK会返回403;如果放行,SDK会返回7101。
  • 如果账号已经退群或者被踢出群,尝试群消息撤回时,会返回403。但是在撤回时长范围内,管理员仍然可以通过客户端撤回其他已被踢出的普通的群成员发送过的消息。
  • 当前AppKey对应的云信应用已关停时,调用IM服务端API会返回{"desc": "app is forbidden", "code": 403}。
  • 当调用IM服务端API,且传入的昵称、签名等信息命中了反垃圾(例如:涉政、违禁、广告等),会返回{"desc": "forbbiden info", "code": 403}。
  • 互动白板业务中的文档转码上传功能里,文档相关信息只能由上传者自己查询,其他账号查询会返回403。
  • IM服务端API群组相关接口只适用于高级群与超大群。
  • 若双方无好友关系,则调用更新好友相关信息的接口将会返回403。

在未开通/启用某项功能前,调用相应的接口也会返回状态码403。常见的情况如下:

  • 未开通事件订阅(常用于在线事件订阅)的情况下,使用相关功能,会返回403。
  • 当前应用无收发IM消息的权限(在控制台会有相应提示),当调用发消息的接口时,会返回403。
  • 删除漫游消息时,如果应用下没有开启消息漫游功能,调用相关接口会返回403。

对象不存在404

当调用接口回调出404状态码后,请检查传参是否正确,常见的情况如:

  • 必传参数为空时,可能会回调404。
  • 传入的参数实际不存在。如传入实际上未注册过的accid,不存在的群id等。

客户端请求超时408

当调用接口回调出408状态码后,请检查当前所处的网络是否正常。常见的情况如:

  • 网络连接断开后,调用联网请求接口,此时会回调408。
  • 在未成功登录的情况下,调用联网请求接口。
  • Android SDK 4.3.0及之前的版本,没有对于Android 8.0以上系统版本的适配,登录时可能出现408,请更新到最新版本SDK。

参数错误414

当调用接口回调出414状态码后,请检查传参是否正确。常见的情况如:

  • 传参的数据类型与接口要求不一致。
  • 如果在控制台 > 应用 > App Key管理 > 标识管理,选中了进行标识安全验证:当请求登录的客户端App标识不在以上列表中时,登录请求将被拒绝,当客户端App标识(iOS Bundle Identifier / Android Package Name)不在配置的列表中,登录接口会返回414。
  • 当调用服务端接口,并传入未注册过的accid时,也会回调414。
  • 聊天室业务中,如果聊天室被关闭,查询聊天室消息历史会返回414。例如:调用IM服务端API「聊天室云端历史消息查询」会返回{"desc": "check roomid", "code": 414}。
  • 如果消息被反垃圾命中,尝试撤回时,会返回错误码414。
  • 不能添加自己为好友,否则返回414。
  • 调用短信相关接口时,若开发者传入的参数不符合JSON格式会返回{"code": 414, "msg": "'mobiles' / 'params' should be json format"},请更正。
  • Web SDK中,群已读回执功能里,参数teamMsgReceipts为数组格式,数组元素上限数50,超过会返回414。
  • 调用IM服务端API时返回{"desc":"bad http headers", "code":414},可能是校验信息错误。关于校验信息,请点此查看
    [注意] 计算CheckSum时使用的是AppSecret而不是AppKey。
  • 返回{"desc": "CurTime is illegal", "code": 414}/{"desc": "CurTime is expired", "code": 414},表示传入的CurTime参数与当前UTC时间戳不一致(超前或滞后)。可能原因是:
    • 开发者没有实时动态获取当前UTC时间戳。
    • 应用服务器配置的时区和时间与实际不一致。
  • 返回{"desc":"body not json", "code":414}。IM服务端接口请求Content-Type为application/x-www-form-urlencoded,请对参数值进行urlencode,避免特殊字符造成解析失败。
  • 返回{"desc":"retry again", "code":414}。调用创建网易云信IM账号并发创建账号时,不同的请求传入相同的accid参数可能返回此错误。
  • 如果群主账号被封禁后,再调用服务端API解散群,会返回{"desc": "check accid001", "code": 414}。
  • 聊天室相关API返回{"desc":"parameter roomid should be long","code":414},可能原因包括但不限于:
    • 开发者对roomid参数的值进行了误编码,例如PHP中对其进行json_encode可能导致出现此报错。
  • 对于更新聊天室信息,如果只传入roomid、needNotify和notifyExt,而没有传入其它任何需要更新的参数,则会返回{"desc": "no valid param provided, skip update!", "code": 414}。
  • 调用调用创建网易云信IM账号时,返回{"desc": "Exceed the maximum account XXX", "code":414}。可能原因有:
    • IM免费版账号数上限数为100个。
    • IM专业版试用到期。IM专业版试用期间账号数无上限,试用到期后上限数降为100个。若需继续使用IM专业版,请在控制台开通正式版。

重复操作417

  • 客户端自动登录时,回调417。可能原因参见自动登录返回417
  • 创建多人音视频房间,回调417.可能原因参见关于多人音视频/互动直播房间的注意事项
  • IM服务端API设置聊天室内用户角色返回{desc:"duplicate...", code:"417"},可能原因包括但不限于:
    • 重复操作,例如已经设置某角色之后再次设置,或者已经取消某角色之后再次取消。
    • 设置不当,例如对非管理员角色取消管理员,或者对非聊天室成员进行操作等。

没有权限802

  • 调用IM SDK主动退群接口,返回802。高级群的群主不能直接退群,可以先转让群再退群,或者直接解散群。
  • 调用将群组整体禁言接口设置或解除群组禁言时,如果muteType传入3,表示禁言整个群(包括群主)。这种情况下如果SDK/客户端若再尝试调用禁言接口,会返回802。
此文档是否对你有帮助?
有帮助
去反馈
  • 状态码列表
  • 状态码详解
  • 用户名或密码错误302
  • 非法操作或没有权限403
  • 对象不存在404
  • 客户端请求超时408
  • 参数错误414
  • 重复操作417
  • 没有权限802