错误码

  • Web

更新时间不可用

查询实时互动 RTC 的 SDK 错误码含义、常见原因和处理建议。

在调用声网 API 过程中,SDK 可能会返回错误码。当收到错误码时,意味着 SDK 遭遇了不可恢复的错误,需要 App 干预。

本文列出常见错误码的详细含义及其解决方法。对于未给出解决方法的错误码,声网推荐你联系技术支持,我们的技术服务会根据你在实际场景中遇到的问题进行排查。

SDK 可能以下列方式抛出错误码:

  • 对于异步方法,SDK 返回 Promise 来通知异步操作的结果,Promise 被 reject 时 SDK 会抛出相应的错误码。
  • 同步方法调用失败时,SDK 直接抛出错误码。
  • SDK 内部运行过程中,也可能抛出一些网络相关的错误码。

你可参考本文了解这些错误码的详细含义及处理方法。

SDK 的错误码对象 AgoraRTCError 继承自浏览器的 Error 对象。你需要通过 AgoraRTCError.code 在控制台上打印出错误码,直接打印 AgoraRTCError 对象只能看到错误信息。

通用错误码

错误码描述处理方法
UNEXPECTED_ERROR无法处理的、非预期的错误,通常这个错误会有具体的错误提示。无。
UNEXPECTED_RESPONSE服务端返回了非预期的响应。这个错误通常是在网络问题导致客户端与服务端状态不一致时抛出。等待网络稳定后重试该操作。
INVALID_PARAMS非法参数。根据具体提示确认操作,并根据文档传入正确的参数。
NOT_SUPPORTED浏览器不支持。参考浏览器支持情况。
INVALID_OPERATION非法操作,通常是因为在当前状态不能进行该操作。确认操作的先后顺序,比如发布前请确认已经加入频道。
OPERATION_ABORTED操作中止,通常是因为网络质量差或连接断开导致与声网服务器通信失败。通过 AgoraRTCClient.on("user-joined") 回调确认本地网络状况,并重试该操作。
WEB_SECURITY_RESTRICT浏览器安全策略限制。请确保 Web 页面运行在安全环境中。
NO_ACTIVE_STATUS声网项目未激活或被禁用。请前往声网控制台确认项目状态是否为启用。
表格内容超出当前宽度,可横向滚动查看更多列。

请求相关错误码

网络连接

错误码描述处理方法
NETWORK_TIMEOUT请求超时,通常是因为网络质量差或连接断开导致与声网服务器通信失败。通过 AgoraRTCClient.on("user-joined") 回调确认本地网络状况,并重试该操作。
NETWORK_RESPONSE_ERROR响应错误,一般是状态码非法。确认操作的参数是否正确,并根据文档传入正确的参数。
NETWORK_ERROR无法定位的网络错误。无。
表格内容超出当前宽度,可横向滚动查看更多列。

SDK 内部请求

错误码描述处理方法
WS_ABORT请求声网服务器过程中 WebSocket 断开。监听 AgoraRTCClient.on("connection-state-change") 事件,待连接状态变为 CONNECTED 后重试。
WS_DISCONNECT请求声网服务器前,WebSocket 就已经断开。监听 AgoraRTCClient.on("connection-state-change") 事件,待连接状态变为 CONNECTED 后重试。
WS_ERRWebSocket 连接发生错误。检查当前浏览器对 WebSocket 的支持情况。
表格内容超出当前宽度,可横向滚动查看更多列。

设备管理相关错误码

错误码描述处理方法
ENUMERATE_DEVICES_FAILED枚举本地设备失败,一般是由于浏览器限制。无。
DEVICE_NOT_FOUND无法找到指定设备。传入正确的设备 ID。
表格内容超出当前宽度,可横向滚动查看更多列。

Track 相关错误码

错误码描述处理方法
TRACK_IS_DISABLED轨道被禁用,通常因为轨道设置了 Track.setEnabled(false)。对该轨道调用 Track.setEnabled(true) 后再进行操作。
SHARE_AUDIO_NOT_ALLOWED屏幕共享音频时终端用户没有点击分享音频。要求终端用户在弹出的屏幕共享窗口中勾选分享音频。
MEDIA_OPTION_INVALID不支持的媒体采集的参数。修改媒体采集参数或使用 SDK 预设的配置。
CONSTRAINT_NOT_SATISFIED不支持的媒体采集的参数。修改媒体采集参数或使用 SDK 预设的配置。
PERMISSION_DENIED获取媒体设备权限被拒绝。在弹出的获取设备权限窗口中选择允许。
NOT_READABLE用户已经授权,但媒体设备无法访问。检查当前采集设备和驱动程序是否出错。
FETCH_AUDIO_FILE_FAILED下载在线音频文件失败。填入正确的在线音频地址,并确保可以正常访问。
READ_LOCAL_AUDIO_FILE_ERROR读取本地音频文件失败。填入正确的本地音频文件路径。
DECODE_AUDIO_FILE_FAILED音频文件解码失败,可能是因为音频文件的编码格式是浏览器 WebAudio 不支持的编码格式。检查浏览器 WebAudio 是否支持音频文件的编码格式。
表格内容超出当前宽度,可横向滚动查看更多列。

Client 相关错误码

加入频道

下表列出加入频道失败时 SDK 抛出的错误码。

错误码描述处理方法
UID_CONFLICT同一个频道内 UID 重复。使用不同的 UID 进入频道。
INVALID_UINT_UID_FROM_STRING_UIDString UID 分配服务返回了非法的 int UID。使用不同的 UID 进入频道。
CAN_NOT_GET_PROXY_SERVER无法获取云代理服务地址。无。
CAN_NOT_GET_GATEWAY_SERVER无法获取声网服务器地址。无。
表格内容超出当前宽度,可横向滚动查看更多列。

发布/取消发布

下表列出发布或取消发布失败时 SDK 抛出的错误码。

错误码描述处理方法
INVALID_LOCAL_TRACK传入了非法的 LocalTrack。检查传入的 Track,并传入正确的 LocalTrack。
CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS一个 Client 发布多个视频轨道。一个 Client 同一时间只能发布一个视频轨道,如果想发布多个视频轨道请创建多个 Client。
表格内容超出当前宽度,可横向滚动查看更多列。

订阅/取消订阅

下表列出订阅或取消订阅失败时 SDK 抛出的错误码。

错误码描述处理方法
INVALID_REMOTE_USER非法的远端用户,可能是远端用户不在频道内或还未发布任何媒体轨道。收到 AgoraRTCClient.on("user-published") 事件后再进行订阅操作。
REMOTE_USER_IS_NOT_PUBLISHED远端用户已发布了音频或视频轨道,但不是与你的订阅操作所指定的类型不符。请确保订阅操作传入的轨道类型需要与 AgoraRTCClient.on("user-published") 事件给出的类型一致,或者在订阅前通过 AgoraRTCRemoteUser.hasVideo 和 AgoraRTCRemoteUser.hasAudio 确认远端用户是否发布了该类型的轨道。
ERR_TOO_MANY_BROADCASTERS频道内主播人数超过上限。控制主播人数。例如:仅在用户需要发布音视频轨道的时候调用 Client.setClientRole,将用户角色切换为主播。
ERR_TOO_MANY_SUBSCRIBERS当前用户订阅的主播人数超过上限。按需订阅主播。
表格内容超出当前宽度,可横向滚动查看更多列。

推流到 CDN

下表列出推流到 CDN 失败时 SDK 抛出的错误码。

错误码描述处理方法
LIVE_STREAMING_TASK_CONFLICT推流任务已经存在。先调用 Client.stopLiveStreaming 停止该推流任务再重新进行推流操作。
LIVE_STREAMING_INVALID_ARGUMENT推流参数错误。参考 Client.startLiveStreaming 的 API 文档检查推流操作的参数。
LIVE_STREAMING_INTERNAL_SERVER_ERROR推流服务器内部错误。重新进行推流操作,如果仍然失败,刷新页面重试。
LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED推流 URL 被占用。检查填入的 URL 是否被占用。
LIVE_STREAMING_CDN_ERROR推流的目标 CDN 出现错误导致推流失败。确认目标 CDN 的健康状况。
LIVE_STREAMING_INVALID_RAW_STREAM推流超时。确认目标流是否存在。
表格内容超出当前宽度,可横向滚动查看更多列。

跨频道连麦

下表列出跨频道连麦失败时 SDK 抛出的错误码。

错误码描述
CROSS_CHANNEL_WAIT_STATUS_ERROR等待 AgoraRTCClient.on("channel-media-relay-state") 回调出错。
CROSS_CHANNEL_FAILED_JOIN_SRC发起跨频道转发媒体流请求失败。
CROSS_CHANNEL_FAILED_JOIN_DEST接受跨频道转发媒体流请求失败。
CROSS_CHANNEL_FAILED_PACKET_SENT_TO_DEST服务器接收跨频道转发媒体流失败。
CROSS_CHANNEL_SERVER_ERROR_RESPONSE服务器响应出错。
表格内容超出当前宽度,可横向滚动查看更多列。