Agora SDK 在调用 API 或运行时,可能会返回错误或警告码:

  • 错误码 意味着 SDK 遭遇不可恢复的错误,需要应用程序干预,例如打开摄像头失败会返回错误,应用程序需要提示用户不能使用摄像头。

  • 警告码 意味着 SDK 遇到问题,但有可能恢复,警告码仅起告知作用,一般情况下应用程序可以忽略警告码。

如果 API 调用失败,SDK 也可能会返回一个负数,该负数也是一个错误码,对应着错误码和警告码里的正整数。例如返回的错误码为 -2,则对应错误码和警告码里的 2: ERR_INVALID_ARGUMENT 。

错误码

错误码 描述
ERR_OK 0 没有错误
ERR_FAILED 1 一般性的错误(没有明确归类的错误原因)
ERR_INVALID_ARGUMENT 2 API 调用了无效的参数。例如指定的频道名含有非法字符
ERR_NOT_READY 3

RTC 初始化失败。处理方法:

  • 检查音频设备状态
  • 检查程序集完整性
  • 尝试重新初始化 RTC
ERR_NOT_SUPPORTED 4 RTC 当前状态禁止此操作,因此不能进行此操作
ERR_REFUSED 5 调用被拒绝。仅供 SDK 内部使用,不通过 API 或者回调事件返回给应用程序
ERR_BUFFER_TOO_SMALL 6 传入的缓冲区大小不足以存放返回的数据
ERR_NOT_INITIALIZED 7 SDK 尚未初始化,就调用其 API。请确认在调用 API 之前已创建 RtcEngine 对象并完成初始化
ERR_NO_PERMISSION 9 没有操作权限,仅供 SDK 内部使用,不通过 API 或者回调事件返回给应用程序
ERR_TIMEDOUT 10 API 调用超时。有些 API 调用需要 SDK 返回结果,如果 SDK 处理事件过程,会出现此错误
ERR_CANCELED 11 请求被取消。仅供 SDK 内部使用,不通过 API 或者回调事件返回给应用程序
ERR_TOO_OFTEN 12 调用频率太高。仅供 SDK 内部使用,不通过 API 或者回调事件返回给应用程序
ERR_BIND_SOCKET 13 SDK 内部绑定到网络 Socket 失败。仅供 SDK 内部使用,不通过 API 或者回调事件返回给应用程序
ERR_NET_DOWN 14 网络不可用。仅供 SDK 内部使用,不通过 API 或者回调事件返回给应用程序
ERR_NET_NOBUFS 15 没有网络缓冲区可用。仅供 SDK 内部使用,不通过 API 或者回调事件返回给应用程序
ERR_JOIN_CHANNEL_REJECTED 17

加入频道被拒绝。一般有以下原因:

  • 用户已进入频道,再次调用加入频道的 API,例如 joinChannel,会返回此错误。停止调用该 API 即可
  • 用户在做 Echo 测试时尝试加入频道。等待 Echo test 结束后再加入频道即可
ERR_LEAVE_CHANNEL_REJECTED 18

离开频道失败。一般有以下原因:

  • 用户已离开频道,再次调用退出频道的 API,例如 leaveChannel,会返回此错误。停止调用该 API 即可
  • 用户尚未加入频道,就调用退出频道的 API。这种情况下无需额外操作
ERR_ALREADY_IN_USE 19 资源已被占用,不能重复使用
ERR_ABORTED 20 SDK 放弃请求,可能由于请求次数太多。仅供 SDK 内部使用,不通过 API 或者回调时间返回给应用程序
ERR_INIT_NET_ENGINE 21 Windows 下特定的防火墙设置导致 SDK 初始化失败然后崩溃
ERR_INVALID_VENDOR_KEY 101 不是有效的 App ID。请更换有效的 App ID 重新加入频道
ERR_INVALID_CHANNEL_NAME 102 不是有效的频道名。请更换有效的频道名重新加入频道
ERR_CHANNEL_KEY_EXPIRED 109

当前使用的 Token 过期,不再有效。一般有以下原因:

  • Token 授权时间戳无效:Token 授权时间戳为 Token 生成时的时间戳,自 1970 年 1 月 1 日开始到当前时间的描述。授权该 Token 在生成后的 24 小时内可以访问 Agora 服务。如果 24 小时内没有访问,则该 Token 无法再使用。需要重新在服务端申请生成 Token
  • Token 服务到期时间戳已过期:用户设置的服务到期时间戳小于当前时间戳,无法继续使用 Agora 服务(比如正在进行的通话会被强制终止);设置服务到期时间并不意味着 Token 失效,而仅仅用于限制用户使用当前服务的时间。需要重新在服务端申请生成 Token
ERR_INVALID_CHANNEL_KEY 110

生成的 Token 无效,一般有以下原因:

  • 用户在控制台上启用了 App 证书,但仍旧在代码里仅使用了 App ID。当启用了 App 证书,必须使用 Token
  • 字段 uid为生成 Token 的必须字段,用户在调用joinChannel 加入频道时必须设置相同的 uid
ERR_CONNECTION_INTERRUPTED 111 网络连接中断。仅适用于 Agora Web SDK
ERR_CONNECTION_LOST 112 网络连接丢失。仅适用于 Agora Web SDK
ERR_NOT_IN_CHANNEL 113 用户不在频道内
ERR_SIZE_TOO_LARGE 114 数据太大
ERR_BITRATE_LIMIT 115 码率受限
ERR_TOO_MANY_DATA_STREAMS 116 数据流/通道过多
ERR_STREAM_MESSAGE_TIMEOUT 117 数据流发送超时
ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED 119 切换角色失败。请尝试重新加入频道
ERR_DECRYPTION_FAILED 120 解密失败,可能是用户加入频道用了不同的密码。请检查加入频道时的设置,或尝试重新加入频道
ERR_CLIENT_IS_BANNED_BY_SERVER 123 此用户被服务器禁止
ERR_WATERMARK_PARAM 124 水印文件参数错误
ERR_WATERMARK_PATH 125 水印文件路径错误
ERR_WATERMARK_PNG 126 水印文件格式错误
ERR_WATERMARKR_INFO 127 水印文件信息错误
ERR_WATERMARK_ARGB 128 水印文件数据格式错误
ERR_WATERMARK_READ 129 水印文件读取错误
ERR_LOAD_MEDIA_ENGINE 1001 加载媒体引擎失败
ERR_START_CALL 1002 启动媒体引擎开始通话失败。请尝试重新进入频道
ERR_START_CAMERA 1003 启动摄像头失败,请检查摄像头是否被其他应用占用,或者尝试重新进入频道
ERR_START_VIDEO_RENDER 1004 启动视频渲染模块失败
ERR_ADM_GENERAL_ERROR 1005 音频设备模块:音频初始化失败。请检查音频设备是否被其他应用占用,或者尝试重新进入频道
ERR_ADM_JAVA_RESOURCE 1006 音频设备模块:使用 java 资源出现错误
ERR_ADM_SAMPLE_RATE 1007 音频设备模块:设置的采样频率出现错误
ERR_ADM_INIT_PLAYOUT 1008 音频设备模块:初始化播放设备出现错误。请检查播放设备是否被其他应用占用,或者尝试重新进入频道
ERR_ADM_START_PLAYOUT 1009 音频设备模块:启动播放设备出现错误。请检查播放设备是否正常,或者尝试重新进入频道
ERR_ADM_STOP_PLAYOUT 1010 音频设备模块:停止播放设备出现错误
ERR_ADM_INIT_RECORDING 1011 音频设备模块:初始化录音设备时出现错误。请检查录音设备是否正常,或者尝试重新进入频道
ERR_ADM_START_RECORDING 1012 音频设备模块:启动录音设备出现错误。请检查录音设备是否正常,或者尝试重新进入频道
ERR_ADM_STOP_RECORDING 1013 音频设备模块:停止录音设备出现错误
ERR_ADM_RUNTIME_PLAYOUT_ERROR 1015 音频设备模块:运行时播放出现错误。请检查录音设备是否正常,或者尝试重新进入频道
ERR_ADM_RUNTIME_RECORDING_ERROR 1017 音频设备模块:运行时录音错误。请检查录音设备是否正常,或者尝试重新进入频道
ERR_ADM_RECORD_AUDIO_FAILED 1018 音频设备模块:录音失败
ERR_ADM_INIT_LOOPBACK 1022 音频设备模块:初始化 Loopback 设备错误
ERR_ADM_START_LOOPBACK 1023 音频设备模块:启动 Loopback 设备错误
ERR_ADM_NO_PERMISSION 1027 音频设备模块:没有录音权限。请检查是否已经打开权限允许录音
ERR_ADM_NO_RECORDING_DEVICE 1359 音频设备模块:无录制设备。请检查是否有可用的录放音设备或者录放音设备是否已经被其他应用占用
ERR_ADM_NO_PLAYOUT_DEVICE 1360 音频设备模块:无播放设备
ERR_VDM_CAMERA_NOT_AUTHORIZED 1501 视频设备模块:没有摄像头使用权限。请检查是否已经打开摄像头权限
ERR_VCM_UNKNOWN_ERROR 1600 视频设备模块:未知错误
ERR_VCM_ENCODER_INIT_ERROR 1601 视频设备模块:视频 Codec 初始化错误。该错误为严重错误,请尝试重新加入频道
ERR_VCM_ENCODER_ENCODE_ERROR 1602 视频设备模块:视频 Codec 错误。该错误为严重错误,请尝试重新加入频道
ERR_VCM_ENCODER_SET_ERROR 1603 视频设备模块:视频 Codec 设置错误

警告码

警告码 描述
WARN_INVALID_VIEW 8 指定的view无效,使用视频功能时需要指定 view,如果 view>尚未指定,则用户看不到视频画面,并返回该警告
WARN_INIT_VIDEO 16 初始化视频功能失败。用户无法看到视频画面,但不影响语音通信。有可能是因视频资源被占用导致的
WARN_NO_AVAILABLE_CHANNEL 103 没有可用的频道资源。可能是因为服务端没法分配频道资源。如出现警告,一般无法进行通话
WARN_LOOKUP_CHANNEL_TIMEOUT 104 查找频道超时。在加入频道时 SDK 先要查找指定的频道,出现该警告一般是因为网络太差,连接不到服务器。网络条件改善时,可自动恢复通话
WARN_LOOKUP_CHANNEL_REJECTED 105 查找频道请求被服务器拒绝。服务器可能没有办法处理这个请求或请求是非法的。一般不会出现该警告。如果出现请尝试退出后重新进入频道
WARN_OPEN_CHANNEL_TIMEOUT 106 打开频道超时。查找到指定频道后,SDK 接着打开该频道,超时一般是因为网络太差,连接不到服务器。网络条件改善时,可自动恢复通话
WARN_OPEN_CHANNEL_REJECTED 107 打开频道请求被服务器拒绝。服务器可能没有办法处理该请求或该请求是非法的。一般不会出现干警告。如果出现请尝试退出后重新进入频道
WARN_SET_CLIENT_ROLE_TIMEOUT 118 直播场景下设置用户模式超时。出现该警告无法自动恢复通话
WARN_SET_CLIENT_ROLE_NOT_AUTHORIZED 119 直播场景下用户模式未授权。出现该警告无法自动恢复通话
WARN_OPEN_CHANNEL_INVALID_TICKET 121 App ID 或动态密钥非法,打开频道失败。请检查 App ID 或动态密钥是否有效,如果无效,请重新获取或生成后,重新进入频道
WARN_OPEN_CHANNEL_TRY_NEXT_VOS 122 该警告表示正在换一个服务器重新登录。登录成功后可自动恢复通话
WARN_AUDIO_MIXING_OPEN_ERROR 701 打开伴奏出错。该警告不影响正常通话
WARN_ADM_RUNTIME_PLAYOUT_WARNING 1014 音频设备模块:运行时播放设备出现警告。该警告不影响正常通话
WARN_ADM_RUNTIME_RECORDING_WARNING 1016 音频设备模块:运行时录音设备出现警告。该警告不影响正常通话
WARN_ADM_RECORD_AUDIO_SILENCE 1019 音频设备模块:没有采集到有效的声音数据。该警告不影响正常通话
WARN_ADM_RECORD_AUDIO_LOWLEVEL 1031 音频设备模块:录到的声音太低。该警告不影响正常通话
WARN_ADM_PLAYOUT_AUDIO_LOWLEVEL 1032 音频设备模块:播放的声音太低。该警告不影响正常通话
WARN_ADM_RECORD_IS_OCCUPIED 1033 音频设备模块:录制设备被占用。该警告不影响正常通话
WARN_APM_HOWLING 1051 音频设备模块:录音声音异常。该警告不影响正常通话
WARN_ADM_GLITCH_STATE 1052 音频设备模块:音频播放会卡顿。该警告不影响正常通话
WARN_ADM_IMPROPER_SETTINGS 1053 音频设备模块:音频底层设置被修改。该警告不影响正常通话