錯誤碼
本文適用於 2.x 獨立版 MA Web SDK。
客戶端錯誤碼定義
Web SDK 本地產生的回調 code 有以下三個值:
| Code | 描述 | 詳細解釋 |
|---|---|---|
| 0 | 請求成功 | 接口請求成功(message 固定為 success) |
| -1 | 請求失敗 | 本地參數校驗失敗、SDK 未就緒(未 init / 未取得 RID/EUID)、網路異常、回應無法解析,或服務端返回非法回應。具體原因見回調 message |
| -8 | 數據採集已關閉 | 2.2.0 起。調用 數據採集開關 關閉採集後,用戶屬性類接口(setProperty、increaseProperty、addProperty、deleteProperty、removeProperty、updateProperty)被攔截,本次操作未執行,message 固定為 data collection disabled。事件、UTM 等無回調接口在關閉期間靜默丟棄,不返回此碼 |
常見的本地 -1 message(英文原文回調給業務方):
| message | 觸發場景 |
|---|---|
invalid argument: enabled must be boolean |
setDataCollectionEnabled 的參數不是布林值 |
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、對尚未定義的 object_array 屬性執行 updateProperty / removeProperty |
| 55100 | 用戶註冊失敗 |
| 55101 | 用戶標識數量超過上限 |
| 55102 | 存在無效的用戶屬性名 |
| 55103 | 用戶屬性值為空 |
| 55105 | 用戶標識值超過 256 字元 |
| 55106 | 用戶標識名不在支援範圍內 |
| 55107 | 用戶標識值為空 |
| 55108 | EUID 無效,例如 maEuid 與 maRid 不屬於同一 MA 用戶 |
| 55110 | 請求過於頻繁,可稍後重試 |
| 55000 | 服務端系統錯誤 |
| 40007 | EUID 為空 |










