Logo Site EngageLab Mark Colored Transparent
文件

錯誤碼

本文適用於 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 為空
Icon Solid Transparent White Qiyu
聯繫銷售