错误码
本文适用于 2.x 独立版 MA Web SDK。
客户端错误码定义
Web SDK 本地产生的回调 code 只有两个值:
| Code | 描述 | 详细解释 |
|---|---|---|
| 0 | 请求成功 | 接口请求成功(message 固定为 success) |
| -1 | 请求失败 | 本地参数校验失败、SDK 未就绪(未 init / 未取得 RID/EUID)、网络异常、响应无法解析,或服务端返回非法响应。具体原因见回调 message |
常见的本地 -1 message(英文原文回调给业务方):
| message | 触发场景 |
|---|---|
sdk hasn't registered yet, request will be cancel |
未完成 init 或 /get-rid 尚未成功,用户类接口被拦截 |
MA EUID is not a valid Long |
本地 EUID 缺失或非法(通常是 /get-euid 未成功) |
identifyAccount fail loginID and mobile are nil |
identifyAccount 传入空标识对象(文案与 v1 字节级一致) |
user_id cannot be "0" / email format is invalid / phone must be E.164 format (+[1-9] followed by 1-14 digits) 等 |
用户标识字段规则预校验失败(规则见「API 指南 · 设置用户标识」) |
channelId must be greater than 0 / channel values cannot be empty / channel value element cannot be empty |
setChannelValue 参数校验失败 |
userIdentity is invalid: ... |
再次 init 携带的 userIdentity 全部字段非法(2.1.0 起再次 init 传入不同 AppKey 会切换数据源,不再返回错误) |
network exception |
网络请求失败或响应非法 |
服务端业务码
服务端明确返回业务失败时,SDK 不把它折叠成 -1,而是把服务端的 code 与文案原样回调,因此回调里可能出现正数 code。
服务端业务码仅用于问题定位,不属于稳定的 SDK 对外契约,请勿根据具体的正数 code 编写业务分支;请统一用 code === 0 判断成功,遇到非预期失败时将 code 与 message 原文提供给技术支持。
重复调用 init(2.1.0 起每次调用都会重新获取 EUID)时,重新请求归属 EUID 的失败同样按上述规则原样回调服务端业务码。
附录:常见服务端业务码
以下值仅供排查参考,不承诺随 SDK 或服务端版本保持稳定:
| Code | 含义 |
|---|---|
| 55004 | 业务参数无效,例如通道 AppKey 未在当前项目映射、channelId 在当前项目不存在、通道值等于 MA RID |
| 55100 | 用户注册失败 |
| 55101 | 用户标识数量超过上限 |
| 55102 | 存在无效的用户属性名 |
| 55103 | 用户属性值为空 |
| 55105 | 用户标识值超过 256 字符 |
| 55106 | 用户标识名不在支持范围内 |
| 55107 | 用户标识值为空 |
| 55108 | EUID 无效,例如 maEuid 与 maRid 不属于同一 MA 用户 |
| 55110 | 请求过于频繁,可稍后重试 |
| 55000 | 服务端系统错误 |
| 40007 | EUID 为空 |










