常见错误代码

大约 10 分钟

常见错误代码

本文主要介绍在调用环信即时通讯的接口过程中,SDK 返回的错误码和错误信息。

你可以根据如下错误码及错误信息了解出错的可能原因,并采取响应措施。

环信即时通讯 SDK 在运行过程中,可能通过如下方式返回错误码和错误信息:

  • 调用方法失败时的返回值。
  • 通过 onError 回调报告错误码。

例如,注册时用户返回已存在的错误可以这样检测:

SDKClient.Instance.Login(username, passwd,
    callback: new CallBack(
        onSuccess: () =>
        {
        },
        onError: (code, desc) =>
        {
            //注册失败,回调函数会返回错误码和错误描述
            //如:code为:USER_ALREADY_EXIST(203)
            //desc : User already exist.
        }
    )
);

错误码定义如下:

错误码错误信息描述和可能原因
0EM_NO_ERROR提示操作成功。
1GENERAL_ERROR默认未区分类型的错误:提示 SDK 内部未正确初始化,或者请求服务器时未识别出具体原因的错误。
2NETWORK_ERROR网络错误:无网络服务时会回调此错误,表示 SDK 与服务器的连接已断开。
3DATABASE_ERROR数据库操作失败
4EXCEED_SERVICE_LIMIT超过服务限制:超过服务版本的数量限制,比如创建的用户 ID 数量超过购买服务的限制时提示该错误。
8APP_ACTIVE_NUMBER_REACH_LIMITATION应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限。
100INVALID_APP_KEYApp Key 不合法:你的 App Key 格式不正确。
101INVALID_USER_NAME用户 ID 不正确:一般是用户 ID 为空时提示该错误,比如使用邀请好友 API 时 username 参数为空字符。
102INVALID_PASSWORD用户密码不正确:登录时提供的密码为空或不正确。
104INVALID_TOKEN登录时提供的 token 为空或不正确。
105USER_NAME_TOO_LONG用户名过长:用户名长度限制 64 个字节。
108TOKEN_EXPIRED声网 token 已过期:超出声网 token 有效期时间。
109TOKEN_WILL_EXPIRE声网 token 即将过期:超出声网 token 有效期一半时间时会开始回调此错误码。
200USER_ALREADY_LOGIN用户已经登录:同一个用户 ID 已经登录。
201USER_NOT_LOGIN用户未登录:如果未登录成功时发送消息,或者使用群组操作的 API,SDK 会提示该错误。
202USER_AUTHENTICATION_FAILED用户鉴权失败:一般是 token 鉴权失败或者 token 已经过期。
203USER_ALREADY_EXIST用户已经存在:注册用户 ID 时如果该 ID 已经存在会提示该错误。
204USER_NOT_FOUND用户不存在:比如登录或者获取用户会话列表时用户 ID 不存在。
205USER_ILLEGAL_ARGUMENT用户参数不正确:比如创建用户 ID 时不符合格式要求, 或者更新用户属性时用户参数为空等。
206USER_LOGIN_ANOTHER_DEVICE用户在其他设备登录:如果未开启多设备登录,则在其他设备登录会将当前登录的设备踢下线,用户会收到此错误。
207USER_REMOVED用户已经被注销:如果登录用户被从管理后台删除 ID 则会收到此错误。
208USER_REG_FAILED用户注册失败:注册用户 ID 时失败,比如未开启开放注册功能等原因。
209PUSH_UPDATECONFIGS_FAILED更新推送配置错误:用户更新推送昵称,设置免推送配置时失败。
210USER_PERMISSION_DENIED用户无权限:例如如果用户被封禁,发送消息时会提示该错误。
213USER_BIND_ANOTHER_DEVICE用户已经在另外设备登录:如果用户设置为先登录的设备优先,则后登录设备登录失败并提示该错误。
214USER_LOGIN_TOO_MANY_DEVICES用户登录设备数超过限制:用户同一 ID 登录设备数量超过限制提示该错误。
215USER_MUTED用户在群组聊天室中被禁言:用户被禁言后发送消息时提示该错误。
216USER_KICKED_BY_CHANGE_PASSWORD用户密码更新:当前登录的用户密码被修改后,当前登录会断开并提示该错误。
217USER_KICKED_BY_OTHER_DEVICE用户被踢下线:开启多设备后,如果用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。
218USER_ALREADY_LOGIN_ANOTHER其他用户已登录:SDK 未退出登录前又被使用不同的账户登录。
219USER_MUTED_BY_ADMIN用户被禁言:用户在当前 app key 被禁言后发送消息时提示该错误。
220USER_DEVICE_CHANGED用户登录设备与上次不一致:用户登录设备与上次登录设备不一致,需要用户重新登录,注意:默认会允许用户登录,踢掉另一个设备上的登录,此 error 在打开不踢掉另外设备上的登录开关后才会生效。
221USER_NOT_FRIEND非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。该功能可在控制台开通。
300SERVER_NOT_REACHABLE请求服务失败:发送或撤回消息时,如果 SDK 与消息服务器未保持连接,会返回该错误;操作群组、好友等请求时,如果因网络连接太差而不成功,也会返回该错误。
301SERVER_TIMEOUT请求服务超时:如果调用 API 在特定时间内服务器未响应则返回该错误,一般是 30 秒或者 60 秒。
302SERVER_BUSY服务器忙碌:服务器当前忙碌会返回该错误,建议稍后再尝试请求。
303SERVER_UNKNOWN_ERROR服务请求的通用错误码:当请求服务器未成功时的默认错误,该错误发生情况较多,需要根据日志进一步排查。
304SERVER_GET_DNSLIST_FAILED获取服务器配置信息错误:SDK 获取当前应用的服务器配置时失败。
305SERVER_SERVICE_RESTRICTED当前 app 被禁用:如果 app 因为某种原因被禁用时会返回该错误。
400FILE_NOT_FOUND文件未找到:当用户获取不到日志文件,或者下载附件失败时提示该错误。
401FILE_INVALID文件异常:当上传消息附件或者群组共享文件时可能会提示该错误。
402FILE_UPLOAD_FAILED上传文件错误:上传消息附件失败时提示该错误。
403FILE_DOWNLOAD_FAILED下载文件错误:下载消息附件失败时提示该错误。
404FILE_DELETE_FAILED删除文件错误:通过 API 获取日志文件时会将旧的日志文件删除,如果删除失败提示该错误。
405FILE_TOO_LARGE文件太大:消息附件或群共享文件超过文件大小限制时提示该错误。
406FILE_CONTENT_IMPROPER文件内容不合规:消息附件或群共享文件内容不合规时提示该错误。
500MESSAGE_INVALID消息异常错误:如果要发送的消息为空,或者消息 ID 为空,或者消息的发送方 ID 与当前登录 ID 不同则会提示该错误。
501MESSAGE_INCLUDE_ILLEGAL_CONTENT消息含有非法内容:如果消息被过滤系统识别为非法消息时返回该错误。
502MESSAGE_SEND_TRAFFIC_LIMIT消息限流:发送消息过快时提示该错误,建议降低频率或者减少消息内容的大小。
504MESSAGE_RECALL_TIME_LIMIT消息撤回超时错误:如果超过消息撤回允许的时间尝试撤回时提示该错误。
505SERVICE_NOT_ENABLED服务未开启:尝试使用某些未开通的功能时提示该错误。
506MESSAGE_EXPIRED消息已过期:发送群组回执时如果已经超过时间限制 (默认 3 天) 会提示该错误。
507MESSAGE_ILLEGAL_WHITELIST用户未在白名单中:如果群组聊天室开启全员禁言,且用户未在白名单中发送消息时提示该错误。
508MESSAGE_EXTERNAL_LOGIC_BLOCKED消息执行发送前回调,被用户自己的逻辑拦截:发送的消息被用户自己的服务器定义的规则拦截掉时提示该错误。
509MESSAGE_CURRENT_LIMITING单个用户 ID 发送消息超出频率限制。默认情况下,SDK 对单个用户 ID 发送群消息未做频率限制。如果你联系了环信商务设置了该限制,一旦在在单聊、群聊或聊天室中单个用户的消息发送频率超过设定的上限,则会提示该错误。
510MESSAGE_SIZE_LIMIT发送消息时消息体大小超过上限。
511MESSAGE_EDIT_FAILED消息编辑失败。
600GROUP_INVALID_ID群组 ID 异常:使用群组相关 API,提供的群组 ID 为空时提示该错误。
601GROUP_ALREADY_JOINED已在该群组中:调用加入群组的 API 时如果已经在该群组中则提示该错误。
602GROUP_NOT_JOINED未加入该群组:尝试在未加入的群组中发送消息或进行群组操作时提示该错误。
603GROUP_PERMISSION_DENIED无权限的群组操作:没有权限进行群组操作,比如群组成员不能设置群组管理员。
604GROUP_MEMBERS_FULL群组已满:群组已经达到人数上限。
605GROUP_SHARED_FILE_INVALIDID共享文件 ID 非法。
606GROUP_NOT_EXIST群组不存在:尝试对不存在的群组进行操作时提示该错误。
607GROUP_DISABLED群组被禁用。
608GROUP_NAME_VIOLATION群组名称非法。
609GROUP_MEMBER_ATTRIBUTES_REACH_LIMIT群组成员自定义属性个数达到上限。
610GROUP_MEMBER_ATTRIBUTES_UPDATE_FAILED设置群成员自定义属性失败。
700CHATROOM_INVALID_ID聊天室 ID 异常:使用聊天室相关 API,提供的聊天室 ID 为空时提示该错误。
701CHATROOM_ALREADY_JOINED已在该聊天室中:调用加入聊天室的 API 时如果已经在该聊天室中则提示该错误。
702CHATROOM_NOT_JOINED未加入该聊天室:尝试在未加入的聊天室中发送消息或进行聊天室操作时提示该错误。
703CHATROOM_PERMISSION_DENIED无权限的聊天室操作:没有权限进行聊天室操作,比如聊天室成员不能设置聊天室管理员。
704CHATROOM_MEMBERS_FULL聊天室已满:聊天室已经达到人数上限。
705CHATROOM_NOT_EXIST聊天室不存在:尝试对不存在的聊天室进行操作时提示该错误。
706CHATROOM_OWNER_NOT_ALLOW_LEAVE聊天室所有者不允许离开聊天室。若初始化时,Options#IsRoomOwnerLeaveAllowed 参数设置为 false,聊天室所有者调用 LeaveRoom 方法离开聊天室时会提示该错误。
900USERINFO_USERCOUNT_EXCEED获取用户属性的用户个数超过 100。
901USERINFO_DATALENGTH_EXCEED设置的用户属性太长。单个用户的所有属性数据不能超过 2 KB,单个 app 所有用户属性数据不能超过 10 GB。
1000CONTACT_ADD_FAILED添加联系人失败。
1001CONTACT_REACH_LIMIT邀请者联系人数量已经达到上限。
1002CONTACT_REACH_LIMIT_PEER受邀请者联系人达到上限。
1100PRESENCE_PARAM_LENGTH_EXCEED调用 Presence 相关方法时参数长度超出限制。
1101PRESENCE_CANNOT_SUBSCRIBE_YOURSELF不能订阅你自己的状态。
1110TRANSLATE_PARAM_INVALID翻译参数错误。
1111TRANSLATE_SERVICE_NOT_ENABLE翻译服务未启用。
1112TRANSLATE_USAGE_LIMIT翻译用量达到上限。
1113TRANSLATE_MESSAGE_FAIL获取翻译服务失败。
1200THIRD_MODERATION_FAILED第三方内容审核服务的消息审核结果为“拒绝”。
1299THIRD_DEFAULT_FAILED除第三方内容审核服务的其他服务的消息审核结果为“拒绝”。
1300REACTION_REACH_LIMITReaction 数量已达到限制。
1301REACTION_HAS_BEEN_OPERATEDReaction 重复添加。
1302REACTION_OPERATION_IS_ILLEGAL没有操作权限:用户对该 Reaction 没有操作权限。例如没有添加过该 Reaction 的用户进行删除操作,或者单聊消息非发送者和非接受者进行添加 Reaction 操作。
1400THREAD_NOT_EXIST未找到该子区,该子区不存在。
1401THREAD_ALREADY_EXIST该消息 ID 下子区已存在,重复添加子区。
1402THREAD_CREATE_MESSAGE_ILLEGAL创建子区的消息无效:创建子区时父消息被撤回了,或者无法使用。