错误码

更新时间不可用

声网 RTSA SDK 在运行过程中,可能通过如下方式返回错误码:

  • 在方法调用失败的返回值中,返回一个负数,这个负数就对应着错误码的正数。
  • 通过 on_error 回调报告错误码。

当收到错误码时,意味着 SDK 遇到了不可恢复的错误,需要 App 干预。本文列出常见错误码的详细含义及其解决方法。

通用错误

错误码枚举值说明
0ERR_OKAY没有错误。
1ERR_FAILED通用错误。你可以根据日志文件排查问题。
2ERR_INVALID_PARAM方法中设置无效的参数,例如指定的频道名中含有非法字符。请重新设置参数。
3ERR_INVALID_STATE当前状态下调用 API 无效,例如关闭本地采集后就无法发布音视频。
4ERR_NOT_SUPPORTED当前状态下不支持该操作。
6ERR_NOT_IN_CHANNEL当前连接状态是未成功加入频道。
7ERR_NOT_INITIALIZED服务未完成初始化。请先调用 init 方法。
8ERR_NOT_EXIST_CONNECTION连接不存在。
10ERR_TIMEDOUTAPI 调用超时。有些方法调用需要 SDK 返回结果,如果处理时间过长(超过 10 秒),SDK 会返回该错误。
11ERR_NO_MEMORY内存不足。
12ERR_CALL_FAILEDAPI 调用失败。
14ERR_NET_DOWN当前网络不可用。你需要检查系统网络连接状态。
17ERR_JOIN_CHANNEL_REJECTED加入频道请求被拒绝,可能是因为本地用户已在频道内。你需要调整代码逻辑,避免用户加入同一频道。
18ERR_LEAVE_CHANNEL_REJECTED离开频道被拒。如果本地用户已经不在频道内,试图调用 API 离开频道时会返回该错误。
23ERR_LICENSE_VERIFICATION_FAILURELicense 未通过验证导致的 SDK 初始化失败。该错误码仅在老版本的 License 下会反馈。
30ERR_ENCRYPTION加密错误。
31ERR_DECRYPTION解密错误。
表格内容超出当前宽度,可横向滚动查看更多列。

传输相关

错误码枚举值说明
101ERR_INVALID_APP_ID不是有效的 App ID。请更换有效的 App ID 重新加入频道。
102ERR_INVALID_CHANNEL_NAME不是有效的频道名。可能的原因是设置的参数数据类型不正确。请更换有效的频道名重新加入频道。
103ERR_NO_SERVER_RESOURCES无法获取指定区域的服务器资源。
105ERR_LOOKUP_CHANNEL_REJECTED声网服务器拒绝了查询频道的请求。你需要检查 RTC Token 是否有效。
107ERR_OPEN_CHANNEL_REJECTED声网服务器拒绝了创建频道的请求。你需要检查 RTC Token 是否有效。
109ERR_TOKEN_EXPIRED

当前使用的 RTC Token 已过期。你需要重新在服务端申请生成 RTC Token 并调用 agora_rtc_join_channel 使用新生成的 RTC Token 重新加入频道。

Token 过期可能的原因有:

  • 授权时间戳过期:Token 一旦生成,用户需要在 5 分钟内使用该 Token 加入频道,否则 Token 会失效。
  • 通话有效时间戳过期:通话有效时间戳指用户不再能使用声网服务(如被强制离开当前通话)的时间戳。这种情况下,Token 没有过期,但是用户也会被踢出频道。
110ERR_INVALID_TOKEN

Token 无效。可能的原因是:

  • 在控制台中启用了 Token 鉴权,但调用 API 时没有传入 Token。
  • 用户加入频道时使用的 uid 和生成 Token 时传入的 uid 不一致。
115ERR_DYNAMIC_TOKEN_BUT_USE_STATIC_KEY在控制台中启用了 Token 鉴权,但调用 join 加入频道时传入的是 App ID。
119ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED切换用户角色失败。请尝试重新加入频道。
120ERR_DECRYPTION_FAILED解密失败。可能的原因是用户尝试使用不同的密码加入频道。请检查你的设置或尝试重新加入频道。
121ERR_OPEN_CHANNEL_INVALID_TICKET打开频道的信令错误。请尝试重新加入频道。
122ERR_OPEN_CHANNEL_TRY_NEXT_VOS系统在尝试切换服务器。通常不需要额外处理,系统会自动尝试切换服务器以打开频道。
123ERR_CLIENT_IS_BANNED_BY_SERVER该客户端被服务器禁用。你需要检查 License 是否正确。
表格内容超出当前宽度,可横向滚动查看更多列。

音频相关

错误码枚举值说明
200ERR_AUDIO_CODEC_NOT_SUPPORTSDK 不支持当前使用的音频编解码器。
201ERR_AUDIO_INVALID_PCM_LENPCM 音频数据长度无效。
202ERR_AUDIO_INVALID_CODEC_PARAM音频编解码器参数无效。
表格内容超出当前宽度,可横向滚动查看更多列。

视频相关

错误码枚举值说明
300ERR_VIDEO_SEND_OVER_BANDWIDTH_LIMIT视频数据发送太快,且超出了带宽限制。当前发送速度下很可能发生丢包。
301ERR_VIDEO_SEND_PACKETIZE_FAILED视频包打包失败。
表格内容超出当前宽度,可横向滚动查看更多列。

RDT 相关

错误码枚举值说明
600ERR_RDT_USER_NOT_EXIST频道内不存在该远端用户。
601ERR_RDT_USER_NOT_READY未成功与远端用户建立连接。你需要等 RDT 通道的连接状态变为 RDT_STATE_OPENED 后重新调用方法。
602ERR_RDT_DATA_BLOCKED发送缓冲区已满。你需要等 RDT 通道的连接状态变为 RDT_STATE_OPENED 后重新调用方法。
603ERR_RDT_CMD_EXCEED_LIMIT控制消息的数量超过限制。每秒发送的控制消息包不能超过 100 条。
604ERR_RDT_DATA_EXCEED_LIMIT数据消息的流量超过限制。每秒发送的数据量不能超过 4 Mbps。
表格内容超出当前宽度,可横向滚动查看更多列。

RTM 相关

错误码枚举值说明
1001ERR_RTM_NOT_LOGINED未登录 RTM 系统。
1002ERR_RTM_HAD_LOGINED已登录 RTM 系统。
1003ERR_RTM_SEND_TO_SELF在 rtmUid 参数中误填了自己的用户 ID。
1004ERR_RTM_EXCEED_MSG_SIZERTM 消息长度超出限制。消息长度至多为 31 KB。
1005ERR_RTM_EXCEED_MSG_CNTRTM 消息发送频率超出限制。每秒至多发送 60 条消息。
1006ERR_RTM_EXCEED_SND_BUFFER消息通道已满。等待一秒后重新发送。
表格内容超出当前宽度,可横向滚动查看更多列。