iOS MA SDK エラーコード
クライアントエラーコードの定義
本ドキュメントは v5.5.0 以降のスタンドアロン版 MTMA SDK を対象としています。
| Code | 説明 | 詳細説明 |
|---|---|---|
| 0 | リクエスト成功 | API リクエストが成功しました |
| -1 | リクエスト失敗 | ネットワーク異常、レスポンス形式のエラー、初期化設定で MA 機能が無効、またはその他の不明なエラー |
| -2 | リクエスト失敗 | start: API が呼び出されていない、MTMA の初期化がまだ成功していない、またはキューに入ったリクエストの実行前に MA AppKey、プロジェクト、ユーザー識別情報が変更された |
| -3 | 無効な設定 | MA AppKey が 24 桁の英数字でない、identifyAccount: の値の整形後に有効な識別子が残らないなど、パラメータの検証に失敗した |
| -4 | プロジェクトが無効 | 実行時 API が MA 機能の無効化を検出した、またはサーバーがプロジェクト無効のエラーを返した。初期化設定で MA 機能が無効の場合は -1 を参照 |
| -5 | 旧版用に保持 | 旧版では AppPush の登録失敗を示すために使用。スタンドアロン版 MTMA では使用しません |
| -6 | プロジェクトの切り替え | プロジェクトが切り替わったため、start: API を再度呼び出して初期化する必要があります |
| -7 | API リクエスト実行中 | キューをサポートしない API ですでにリクエストを実行中。有効な start: 呼び出しは、初期化リクエストがすでに存在していてもこのコードを返しません。サードパーティ Push チャネルのリクエストは順番にキューで処理されます |
サーバーの業務コード
上の表は SDK 自体が生成するエラーコードです。サーバー側で業務処理が失敗した場合、SDK は対応する業務コードとメッセージを返すため、コールバックの code が正の値になることがあります。個々の業務コードは原因調査用であり、バージョン間の互換性は保証されません。これらを条件に業務処理を分岐させないでください。
初期化結果は MTMAInitResult.isSuccess で判断してください。その他の API は code=0 でリクエストの成功を判断します。予期しない失敗が発生した場合は、code と message をそのままテクニカルサポートに提供してください。
identifyAccount:のcode=0は、すべての識別子の設定成功を意味しません。ユーザー識別子の設定を参照してください。- object_array 属性がサーバーで未定義の場合、要素単位の操作は
code=0を返しても変更が行われないことがあります。その他のデータが変更されないケースは、ユーザー属性の設定を参照してください。実際の結果は MA コンソールまたはサーバー側のユーザー属性で確認してください。
| シナリオ | コールバックの code | コールバックの message |
|---|---|---|
サーバーが業務処理の失敗を返す(HTTP 4xx/5xx で、レスポンス本文が有効な JSON かつ数値の code を含む) |
サーバーの code の値をそのまま返す |
サーバーの msg/message をそのまま返す |
| ネットワーク異常、またはレスポンス本文から業務コードを解析できない | -1 |
SDK の固定メッセージ |
プロジェクトが無効 / プロジェクトの切り替え(HTTP 400 + 40001/40002) |
-4 / -6 |
上の表を参照 |
付録:よくあるサーバー業務コード
以下の値は原因調査の参考用です。SDK またはサーバーのバージョンが変わっても同じ値が維持される保証はありません:
| Code | 意味 |
|---|---|
| 55004 | 業務パラメータが無効。例えば、アプリの Bundle Identifier が MA データソース設定と不一致または未紐付け、チャネルの AppKey が現在のプロジェクトにマッピングされていない、channelId が現在のプロジェクトに存在しない。具体的な原因は message と併せて判断してください |
| 55108 | EUID が無効。例えば、EUID と MA RID が同じ MA ユーザーに属していない |
| 55110 | リクエスト頻度が高すぎる。例えば、同じ AppPush RID の紐付けが同時に実行されている。しばらくしてから再試行できます |
| 55000 | サーバーのシステムエラー |
ユーザー識別子ごとの処理結果
以下には SDK のローカル検証結果とサーバーからの結果が含まれます。フィールドの処理規則については、MTMAUserID クラスを参照してください:
| Code | 意味 |
|---|---|
| 0 | このユーザー識別子の処理に成功 |
| 3001 | ユーザー識別子の値が空(サーバーの参考コード。本バージョンの SDK では、公開されている 4 つの識別子フィールドの空値は未指定として扱い、フィールド単位の 3001 は生成しません) |
| 3002 | ユーザー識別子が現在のプロジェクトで定義されていない |
| 3003 | ユーザー識別子の値が長さの上限を超えている |
| 3013 | ユーザー識別子の型または形式が不正。NSString 以外の型を含む |










