错误码&问题排查

本文介绍直播互动消息在开发、测试过程中遇到问题如何自助排查和修复。

开启本地日志

当您的应用处于开发、测试阶段时,为了方便定位并修复问题,可能需要 SDK 输出更详细的信息来辅助分析。您可以在初始化 SDK 实例的时候,通过配置信息来开启日志输出并设置日志信息等级,之后即可在 IDE 或者浏览器的控制台中查看日志信息。

Android

ImSdkConfig config = new ImSdkConfig();
config.logLevel = ImLogLevel.DEBUG; //[选填],指定Log日志可输出的最小等级,默认是ImLogLevel.DEBUG;若需要关闭Log日志,则设置为ImLogLevel.NONE;

iOS

// setup初始化
AliVCIMEngineConfig *config = [AliVCIMEngineConfig new];
config.logLevel = AliVCIMLogLevelDebug; 

Web

const { ImEngine, ImLogLevel } = AliVCInteraction;

// 获取引擎单例
const engine = ImEngine.createEngine();

try {
  await engine.init({
    deviceId: "deviceId", //[选填]
    appId: "appId", //[必填]传空会返回初始化失败-2;请务必在创建应用后,将示例中的APP_ID替换为您应用的AppId,否则无法使用;
    appSign: "appSign", //[必填]传空会返回初始化失败-2;请务必在创建应用后,将示例中的APP_SIGN替换为您应用的AppSign,否则无法使用;
    logLevel: ImLogLevel.ERROR, //[选填],指定Log日志可输出的最小等级,默认是ImLogLevel.DEBUG;若需要关闭Log日志,则设置为ImLogLevel.NONE;
  });
} catch (error) {
  // init 错误码含义
  // 初始化返回非0,表示初始化失败,其中1001:重复初始化、1002:创建底层引擎失败、-1:底层重复初始化、-2:初始化配置信息有误
  console.log(`Init Fail: code:${error.code}, message: ${error.msg}`);
}

微信小程序

// 请结合您项目实际情况引入 SDK
const { ImEngine, ImLogLevel } = import '../../lib/alivc-im.js';

// 获取引擎单例
const engine = ImEngine.createEngine();

try {
  await engine.init({
    deviceId: "deviceId", //[选填]
    appId: "appId", //[必填]传空会返回初始化失败-2;请务必在创建应用后,将示例中的APP_ID替换为您应用的AppId,否则无法使用;
    appSign: "appSign", //[必填]传空会返回初始化失败-2;请务必在创建应用后,将示例中的APP_SIGN替换为您应用的AppSign,否则无法使用;
    logLevel: ImLogLevel.ERROR, //[选填],指定Log日志可输出的最小等级,默认是ImLogLevel.DEBUG;若需要关闭Log日志,则设置为ImLogLevel.NONE;
    // 指定引入的 wasm 的地址
    locateFile: (url: string) => {
      if (url.endsWith('.wasm')) {
        // 需要根据您项目 alivc-im.wasm.br 文件存放位置修改返回的路径
        // 这里是从项目根目录读取文件,而不是当前文件的目录下,因此不需要使用 .. 和 . 这些相对路径
        // 如果您参考了上面 uni-app 工程的目录结构,那么这里返回 /static/mp-weixin/alivc-im.wasm.br
        // 如果您参考了上面 Taro 工程的目录结构,那么这里返回 /static/alivc-im.wasm.br
        return '/lib/alivc-im.wasm.br';
      }
      return url;
    },
  });
} catch (error) {
  // init 错误码含义
  // 初始化返回非0,表示初始化失败,其中1001:重复初始化、1002:创建底层引擎失败、-1:底层重复初始化、-2:初始化配置信息有误
  console.log(`Init Fail: code:${error.code}, message: ${error.msg}`);
}

日志信息等级,一共有 DEBUG、INFO、WARN、ERROR、NONE 五个等级,其中 DEBUG 输出的日志信息最多,ERROR 输出的日志信息最少,NONE 不输出日志信息。

说明
  • 开发测试阶段,建议将日志信息等级设置为 DEBUG。

  • 正式上线时,建议将日志信息等级设置为 INFO。

错误码对照表

错误码

原因

解决办法

0/200

成功。

正常调用。

-1

重复初始化。

对应操作:初始化;

请先判断是否已经初始化再操作。

-2

初始化配置信息有误。

对应操作:初始化;

请检查初始化配置信息是否正确,例如appid、appsign为空。

1

没有初始化。

请先判断是否已经初始化再操作。

2

参数异常。

请检查传入参数是否正确,可以结合错误信息进一步排查。

3

状态有误。

请检查操作流程是否正确,可以结合错误信息进一步排查。

4

连接失败。

若是登录操作,则表示建连失败了,请检查网络环境等是否正常,再做重试;若是其他操作,则表示当前处于断连掉线状态,待重连成功后再重试;可以通过监听连接状态的变化通知,判断是否已经重连成功。

5

建连超时。

对应操作:登录;

请检查网络环境等是否正常,再做重试;

6

发送失败。

请检查网络环境等是否正常,再做重试;可以结合错误信息进一步排查。

7

发送取消。

请结合错误信息进一步排查;一般是前面的操作还没结束,又执行了登出操作,从而中断前面的操作。

8

发送超时。

发送消息最终超时;请检查网络环境等是否正常,再做重试;

9

订阅失败。

对应操作:加入群组或者重连后恢复加入群组;

请检查网络环境等是否正常,退出群组后再重试。

10

订阅通道断连。

对应操作:加入群组或者重连后恢复加入群组;

请检查网络环境等是否正常,退出群组后再重试。

11

订阅超时。

对应操作:加入群组或者重连后恢复加入群组;

请检查网络环境等是否正常,退出群组后再重试。

12

压缩失败。

请结合本地日志信息排查,检查应用是否内存不足等,稍候重试。

13

解压失败。

请结合本地日志信息排查,检查应用是否内存不足等,稍候重试。

14

加密失败。

请结合本地日志信息排查,检查应用是否内存不足等,稍候重试。

15

解密失败。

请结合本地日志信息排查,检查应用是否内存不足等,稍候重试。

16

消息体封装失败。

请结合本地日志信息排查,检查应用是否内存不足等,稍候重试。

17

消息体解析失败。

请结合本地日志信息排查,检查应用是否内存不足等,稍候重试。

18

数据为空。

对应操作:初始化;

请检查初始化配置appsign信息是否正常。

19

数据错误。

对应操作:初始化;

请检查初始化配置appsign信息是否正常。

20

地址出错。

对应操作:初始化;

请检查初始化配置appsign信息是否正常;例如头部带了空格、内容被截断等。

21

建连取消。

对应操作:登录;

登录建连时,执行了登出操作,从而前面的登录被中断。

304

重复登录login,或已在群组中重复加入群组joinGroup。

  • 先登出或退出群组,再重新登录或加入:适用于需要更新登录或入群信息的场景,确保使用最新状态接入。

  • 无需处理,直接继续操作:若当前已处于登录或已入群状态,且无需更新信息,可直接进行后续操作。

400

参数错误;参数无法解析;

请检查传入参数是否符合规范,可以结合错误信息进一步排查;例如appid、userid、groupidID信息,限制最长64位,仅限于A~Z、a~z、0~9及“-”,不能包含其他字符。

402

登录时鉴权失败

请检查传入信息是否正确。例如登录token生成的参数信息跟登录的参数信息是否不一致;

403

操作无权限; 或登录时token过期。

请检查传入信息是否正确。例如登录的token是否过期、非管理员操作了需要管理员权限的接口。

404

no session,可能因为网络变化等原因导致的连接变化,服务器在新连接上收到消息无法正常处理,需要reconnect 信令。

SDK内部会执行重连,待重连成功后再操作;可以通过监听连接状态的变化通知,判断是否已经重连成功。

406

安全审核没有通过。

请检查是否开启了安全审核功能,且发送的内容是否符合安全审核标准。

407

创建的群组数量超过上限。

请求检查创建的群组数量是否已经超过限制。

409

重连时出现不可恢复的错误。

请退出后重试。

412

繁忙,发送太快。

请稍候重试。

413

繁忙,发送太快。

请稍候重试。

420

超级大群不支持查询用户列表。

请先判断不是超级大群再操作。

424

发送 c2c 消息对方用户不在线。

请等待对方上线后再操作。

425

未进入群组。

请先加入群组再操作。

429

操作过快,短时间内,发起过多请求。如同一个用户,1秒内发起2次登录。

请稍候重试;或者针对接口做频率限制,防止短时间内频繁重复操作。

440

群组不存在或已删除。

对应操作:加入群组、群发消息、管理群信息等一系列针对群组的操作;

请检查群组是否已经被删除。

441

群组已删除。

对应操作:加入群组、群发消息、管理群信息等一系列针对群组的操作;

请检查群组是否已经被删除。

442

无法在该群组中发送消息,被禁言。

请检查用户是否被禁言。

443

进了太多的群组, 列表人数超大等。

请检查是否没有及时退出群组等操作。

444

发送群消息类型超过上限30种。

请检查并限制消息类型的数量。

500

系统临时错误。

请稍候重试。

601

状态错误。

请结合错误信息进一步排查操作流程是否正常;例如返回"SDK未初始化",则需要先执行初始化成功后才能操作。

602

未登录。

请检查操作流程是否正确;需要登录成功后才能执行相关操作;例如只有登录后才能加入群组。

603

收到上次登录状态消息。

请检查操作流程是否符合预期。

604

解析数据失败。

请本地日志信息,以及返回的错误信息进一步排查;

1001

重复初始化。

对应操作:初始化;

请先判断是否已经初始化再操作。

1002

创建底层引擎失败。

对应操作:初始化;

请重启应用后重试