iOS 常见错误代码
更新时间:2022-08-02
本文介绍环信即时通讯 iOS SDK 中接口调用或者回调中的错误码。可以根据具体错误码判断具体错误原因。
iOS 中错误码的类为 EMError
。
如:注册时用户返回已存在的错误可以这样检测:EMError.code == EMErrorUserAlreadyExist。
iOS 的错误码只有当操作出错的时候才会有返回值,否则返回 nil。
错误码 | 错误信息 | 描述和可能原因 |
---|---|---|
1 | EMErrorGeneral | 默认未区分类型的错误:SDK 内部未正确初始化或提示请求服务器时未识别出的具体原因。 |
2 | EMErrorNetworkUnavailable | 网络错误:无网络服务时会回调此错误,表示 SDK 与服务器的连接已断开。 |
3 | EMErrorDatabaseOperationFailed | 数据库操作失败:打开本地数据库失败。 |
4 | EMErrorExceedServiceLimit | 超过服务限制:超过服务版本的数量限制,比如创建的用户 ID 数量超过上限。 |
5 | EMErrorServiceArrearages | 服务欠费,该错误码已废弃。 |
100 | EMErrorInvalidAppkey | App Key 不合法:用户的 App Key 格式不正确。 |
101 | EMErrorInvalidUsername | 用户 ID 为空或不正确,比如使用邀请好友 API 时 username 参数为空字符。 |
102 | EMErrorInvalidPassword | 用户密码不正确:登录时提供的密码为空或不正确。 |
103 | EMErrorInvalidURL | URL 不正确,该错误码已废弃。 |
104 | EMErrorUsernameTooLong | 用户名过长。 |
200 | EMErrorUserAlreadyLoginSame | 当前用户已经登录:同一用户 ID 已经登录。 |
201 | EMErrorUserNotLogin | 用户未登录:如果未登录成功时调用发送消息,群组操作的 API 会提示该错误。 |
202 | EMErrorUserAuthenticationFailed | 用户鉴权失败:一般是 token 鉴权失败或者 token 已经过期。 |
203 | EMErrorUserAlreadyExist | 用户已经存在:注册的用户 ID 已存在。 |
204 | EMErrorUserNotFound | 用户不存在:比如登录或者获取用户会话列表时用户 ID 不存在。 |
205 | EMErrorUserIllegalArgument | 用户参数不正确:比如创建用户 ID 时不符合格式要求,或者更新用户属性时用户参数为空等。 |
206 | EMErrorUserLoginOnAnotherDevice | 用户在其他设备登录:未开启多设备登录,用户已登录其他设备,当前设备登录失败。 |
207 | EMErrorUserRemoved | 用户已经被注销:如果登录用户 ID 被管理员从管理后台删除则会收到此错误。 |
208 | EMErrorUserRegisterFailed | 用户注册失败:注册用户 ID 时失败,比如未开启开放注册功能等原因。 |
209 | EMErrorUpdateApnsConfigsFailed | 更新推送配置错误:用户更新推送昵称,设置免推送配置时失败。 |
210 | EMErrorUserPermissionDenied | 用户无权限:例如,如果用户被封禁,发送消息时会提示该错误。 |
211 | EMErrorUserBindDeviceTokenFailed | 用户更新推送 token 错误,该错误码已废弃。 |
212 | EMErrorUserUnbindDeviceTokenFailed | 用户更新推送 token 错误,该错误码已废弃。 |
213 | EMErrorUserBindAnotherDevice | 用户已经在另外设备登录:如果用户设置为先登录的设备优先,则后登录设备登录失败并提示该错误。 |
214 | EMErrorUserLoginTooManyDevices | 用户登录设备数超过限制:用户同一 ID 登录设备数量超过限制提示该错误。 |
215 | EMErrorUserMuted | 用户在群组聊天室中被禁言:用户被禁言后发送消息时提示该错误。 |
216 | EMErrorUserKickedByChangePassword | 用户密码更新:当前登录的用户密码被修改后,当前登录会断开并提示该错误。 |
217 | EMErrorUserKickedByOtherDevice | 用户被踢下线:未开启多设备登录,如果用户在其他设备上登录;或者开启多设备登录后,用户登录设备数量超过限制,则最新一台设备登录时会踢掉第一台设备,SDK 会提示该错误。 |
218 | EMErrorUserAlreadyLoginAnother | 其他用户已登录:其他用户已在当前环境下登录 SDK,当前用户不能再登录。 |
219 | EMErrorUserMutedByAdmin | 当前用户被管理员禁言,请联系管理员解除禁言。 |
221 | USER_NOT_FRIEND | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。该功能可在控制台开通。 |
300 | EMErrorServerNotReachable | 请求服务失败:发送或撤回消息时,如果 SDK 与消息服务器未保持连接,会返回该错误;操作群组、好友等请求时,如果因网络连接太差而不成功,也会返回该错误。 |
301 | EMErrorServerTimeout | 请求服务超时:调用 API 时服务器未在特定时间内响应。 |
302 | EMErrorServerBusy | 服务器忙碌:服务器当前忙碌,建议稍后重试。 |
303 | EMErrorServerUnknownError | 服务请求的通用错误码:当请求服务器未成功时的默认错误,该错误发生情况较多,需要根据日志进一步排查。 |
304 | EMErrorServerGetDNSConfigFailed | 获取服务器配置信息错误:SDK 获取当前应用的服务器配置时失败。 |
305 | EMErrorServerServingForbidden | 当前 app 被禁用:app 因为某种原因被禁用。 |
400 | EMErrorFileNotFound | 文件未找到:当用户获取不到日志文件或者下载附件失败时提示该错误。 |
401 | EMErrorFileInvalid | 文件异常:当上传消息附件或者群组共享文件时可能会提示该错误。 |
402 | EMErrorFileUploadFailed | 上传文件错误:上传消息附件失败。 |
403 | EMErrorFileDownloadFailed | 下载文件错误:下载消息附件失败。 |
404 | EMErrorFileDeleteFailed | 删除文件错误:通过 API 获取日志文件时会将旧的日志文件删除,如果删除失败提示该错误。 |
405 | EMErrorFileTooLarge | 文件太大:消息附件或群共享文件超过文件大小限制。 |
406 | EMErrorFileContentImproper | 文件内容不合规:发送消息上传附件失败时可能提示该错误。 |
500 | EMErrorMessageInvalid | 消息异常错误:如果构造的消息为空,或者消息 ID 为空,或者消息的发送方 ID 与当前登录 ID 不同则会提示该错误。 |
501 | EMErrorMessageIncludeIllegalContent | 消息含有非法内容:消息被过滤系统识别为非法消息。 |
502 | EMErrorMessageTrafficLimit | 消息限流:消息发送速度过快,建议降低频率或者减少消息内容。 |
503 | EMErrorMessageEncryption | 消息加密错误:该错误码已废弃。 |
504 | EMErrorMessageRecallTimeLimit | 消息撤回超时错误:如果超过消息撤回允许的时间尝试撤回时提示该错误。 |
505 | EMErrorServiceNotEnable | 服务未开通:要使用的某些功能未开通。 |
506 | EMErrorMessageExpired | 消息已过期:发送群组回执时超过了时间限制 (默认 3 天) 。 |
507 | EMErrorMessageIllegalWhiteList | 用户未在白名单中:群组聊天室开启全员禁言时,若用户未在白名单中发送消息时提示该错误。 |
508 | EMErrorMessageExternalLogicBlocked | 发送前回调拦截:消息发送前被服务器拦截。 |
509 | EMErrorMessageCurrentLimiting | 单个用户 ID 发送群聊消息超出频率限制。 |
600 | EMErrorGroupInvalidId | 群组 ID 异常:群组相关 API 传入的群组 ID 为空。 |
601 | EMErrorGroupAlreadyJoined | 已在该群组中:调用加入群组的 API 加入的用户已经在该群组中。 |
602 | EMErrorGroupNotJoined | 未加入该群组:在未加入的群组中发送消息或进行群组操作时提示该错误。 |
603 | EMErrorGroupPermissionDenied | 无权限的群组操作:没有权限进行群组操作,比如群组成员不能设置群组管理员。 |
604 | EMErrorGroupMembersFull | 群组已满:群组已经达到人数上限。 |
605 | EMErrorGroupNotExist | 群组不存在:对不存在的群组进行操作。 |
606 | EMErrorGroupSharedFileInvalidId | 共享文件 ID 为空:共享文件 ID 为空。 |
700 | EMErrorChatroomInvalidId | 聊天室 ID 异常:聊天室相关 API 传入的聊天室 ID 为空。 |
701 | EMErrorChatroomAlreadyJoined | 已在该聊天室中:调用加入聊天室的 API 添加的用户已经在该聊天室中。 |
702 | EMErrorChatroomNotJoined | 未加入该聊天室:用户在未加入的聊天室中发送消息或进行聊天室操作时提示该错误。 |
703 | EMErrorChatroomPermissionDenied | 无权限的聊天室操作:没有权限进行聊天室操作,比如聊天室成员不能设置聊天室管理员。 |
704 | EMErrorChatroomMembersFull | 聊天室已满:聊天室已经达到人数上限。 |
705 | EMErrorChatroomNotExist | 聊天室不存在:要操作的聊天室不存在。 |
900 | EMErrorUserCountExceed | 获取用户属性的用户个数超过 100。 |
901 | EMErrorUserInfoDataLengthExceed | 设置的用户属性太长。单个用户的所有属性数据不能超过 2 KB,单个 app 所有用户属性数据不能超过 10 GB。 |
903 | EMErrorTranslateParamInvalid | 调用翻译方法传入的参数无效,请检查传参。 |
904 | EMErrorTranslateFail | 翻译服务接口返回错误。 |
905 | EMErrorTranslateNotInit | 翻译服务未初始化。 |
1000 | EMErrorContactAddFailed | 添加联系人失败。 |
1001 | EMErrorContactReachLimit | 邀请者联系人数量已经达到上限。 |
1002 | EMErrorContactReachLimitPeer | 受邀请者联系人达到上限。 |
1100 | EMErrorPresenceParamExceed | 调用 Presence 相关方法时参数长度超出限制。 |
1101 | EMErrorPresenceCannotSubscribeSelf | 不能订阅你自己的状态。 |
1110 | EMErrorTranslateParamError | 翻译参数错误。 |
1111 | EMErrorTranslateServiceNotEnabled | 翻译服务未启用。 |
1112 | EMErrorTranslateUsageLimit | 翻译用量达到上限。 |
1113 | EMErrorTranslateServiceFail | 获取翻译服务失败。 |
1300 | EMErrorReactionReachLimit | Reaction 数量已达到限制。 |
1301 | EMErrorReactionHasBeenOperated | Reaction 重复添加。 |
1302 | EMErrorReactionOperationIsIllegal | 没有操作权限:用户对该 Reaction 没有操作权限。例如没有添加过该 Reaction 的用户进行删除操作,或者单聊消息非发送者和非接受者进行添加 Reaction 操作。 |
1400 | EMErrorThreadNotExist | 未找到该子区,该子区不存在。 |
1401 | EMErrorThreadAlreadyExist | 该消息 ID 下子区已存在,重复添加子区。 |
1402 | EMErrorThreadCreateMessageIllegal | 创建子区的消息无效:创建子区时父消息被撤回了,或者无法使用。 |