エラーコード

REST API エラーコードのリストと、エラーがアプリケーションに返される方法を以下で説明します。

例外の処理とログ

Marketo 向けに開発を行う場合、予期しない例外が発生した際にリクエストと応答がログに記録されることが重要です。期限切れの認証などの特定のタイプの例外は、再認証によって安全に処理できますが、他の例外ではサポートのインタラクションが必要になる場合があり、このシナリオでは常にリクエストと応答がリクエストされます。

エラータイプ

Marketo REST API は、通常の操作では次の 3 つの異なるタイプのエラーを返します。

  • HTTP レベル:これらのエラーは、4xx コードで示されます。
  • 応答レベル:これらのエラーは、JSON 応答の "errors" 配列に含まれます。
  • レコードレベル:これらのエラーは、JSON 応答の "result" 配列に含まれ、"status" フィールドと "reasons" 配列を使用して個々のレコードごとに示されます。

応答レベルおよびレコードレベルのエラータイプの場合、HTTP ステータスコード 200 が返されます。すべてのエラータイプについて、HTTP 理由フレーズはオプションであり、変更される可能性があるので、評価しないでください。

HTTP レベルのエラー

通常の操作状況では、Marketo は、413 Request Entity Too Large414 Request URI Too Long の 2 つの HTTP ステータスコードエラーのみを返します。これらは両方とも、エラーをキャッチし、リクエストを変更して再試行することで復元できますが、スマートコードプラクティスを使用すれば、実際にこのような問題が発生することはありません。

リクエストペイロードが 1 MB を超える場合や、「リード読み込み」のケースで 10 MB を超える場合、Marketo は 413 を返します。ほとんどのシナリオでは、これらの制限に達する可能性はほとんどありませんが、リクエストのサイズを確認するチェックを追加し、制限を超える原因となるレコードを新しいリクエストに移動することで、エンドポイントからこのエラーが返される状況を防ぐことができます。

GET リクエストの URI が 8 KB を超えると 414 が返されます。これを回避するには、クエリ文字列の長さがこの制限を超えていないかどうかを確認します。リクエストが POST メソッドに変更される場合は、追加のパラメーター _method=GET を指定して、クエリ文字列をリクエスト本文として入力します。これにより、URI の制限がなくなります。ほとんどの場合、この制限に達することはまれですが、GUID などの長い個別のフィルター値を持つ大量のレコードを取得する場合は、比較的よくで発生します。
ID エンドポイントは、401 Unauthorized エラーを返す場合があります。これは通常、クライアント ID やクライアント秘密鍵が無効であることが原因です。HTTP レベルのエラーコード

応答コード
説明
コメント
413
リクエストエンティティが大きすぎます
ペイロードが 1 MB の制限を超えました。
414
リクエスト URI が長すぎます
リクエストの URI が 8 K を超えました。 リクエストは、URL にパラメーター `_method=GET` を含め、リクエストの本文に残りのクエリ文字列を含めて POST として再試行する必要があります。

応答レベルのエラー

応答レベルのエラーは、応答の success パラメーターが false に設定されている場合に発生し、次のように構造化されます。

{
    "requestId": "e42b#14272d07d78",
    "success": false,
    "errors": [
        {
            "code": "601",
            "message": "Unauthorized"
        }
    ]
}

"errors" 配列の各オブジェクトには、601 から 799 までの引用符で囲まれた整数である code と、エラーの理由をプレーンテキストで示す message の 2 つのメンバーがあります。6xx コードは常に、リクエストが完全に失敗し、実行されなかったことを示します。例えば、601「アクセストークンが無効です」があります。これは、再認証して新しいアクセストークンをリクエストに渡すことで復元できます。7xx エラーは、データが返されなかったか、無効な日付が含まれている、必須パラメータが欠落しているなど、リクエストが誤ってパラメーター化されたことにより、リクエストが失敗したことを示します。

応答レベルのエラーコード

この応答コードを返す API 呼び出しは、毎日の割り当て量やレート制限に対してカウントされません。

応答コード
説明
コメント
502
ゲートウェイが正しくありません
リモートサーバーがエラーを返しました。タイムアウトの可能性があります。リクエストは、指数バックオフで再試行する必要があります。
601*
アクセストークンが無効です
リクエストにアクセストークンパラメーターが含まれていましたが、値が有効なアクセストークンではありませんでした。
602*
アクセストークンの有効期限が切れました
呼び出しに含まれるアクセストークンは期限切れにより無効になりました。
603
アクセス拒否
認証は成功しましたが、ユーザにはこの API を呼び出すための十分な権限がありません。[追加の権限](custom-services.md)をユーザロールに割り当てる必要があるか、IP ベースの API アクセスの許可リストを有効にする必要がある場合があります。
604*
リクエストタイムアウト
リクエストの実行時間が長すぎたか(例:データベース競合が発生した)、呼び出しのヘッダーで指定されたタイムアウト期間を超えました。
605*
HTTP メソッドがサポートされていません
「リードを同期」エンドポイントでは、GET はサポートされていません。POST を使用する必要があります。
606
「%s」秒以内に最大レート制限「%s」を超えました
過去 20 秒間の呼び出し回数が 100 を超えました
607
毎日の割り当て量に達しました
今日の呼び出し回数がサブスクリプションの割り当て量を超えました(毎日午前 12:00 CST にリセットされます)。>割り当て量は、管理/Web サービスメニューで確認できます。アカウントマネージャーを通じて、割り当て量を増やすことができます。
608*
API は一時的に使用できません
609
無効な JSON
リクエストに含まれた本文が有効な JSON ではありません。
610
リクエストされたリソースがありません
呼び出しの URI が REST API リソースタイプと一致しませんでした。多くの場合、リクエスト URI のスペルが正しくないか、形式が正しくないことが原因です
611*
システムエラー。
すべての未処理の例外
612
無効なコンテンツタイプ
このエラーが表示された場合は、JSON 形式を指定するコンテンツタイプヘッダーをリクエストに追加します。例えば、「content type: application/json」を使用してみてください。詳しくは、この StackOverflow の質問を参照してください。
613
無効な Multipart リクエスト
POST の multipart コンテンツの形式が正しくありませんでした
614
無効なサブスクリプション
宛先のサブスクリプションが見つからないか、アクセスできません。このエラーは通常、一時的にアクセスできないことを示します。
615
同時アクセス制限に達しました
最大で、リクエストはサブスクリプションごとに一度に 10 個処理されます。既に 10 個のリクエストが進行中の場合、このエラーが返されます。
616
無効なサブスクリプションタイプ
Custom Object Metadata API にアクセスするには、適切な Marketo サブスクリプションタイプが必要です。詳しくは、CSM にお問い合わせください。
701
%s は空白にできません
リクエストでは、報告されたフィールドを空にすることはできません
702
指定された検索シナリオのデータが見つかりません
指定された検索パラメーターに一致するレコードはありません。 メモ:失敗した検索操作の多くは、「success = true」を返し、エラーは返さず、警告情報文字列を設定します。
703
この機能は、サブスクリプションでは有効になっていません
ユーザのサブスクリプションで有効になっていないベータ版機能
704
無効な日付フォーマット
  • 正しい形式でない日付が指定されました
  • 無効な動的コンテンツ ID が指定されました
709
ビジネスルール違反

テンプレートを使用せずにメールを作成しようとするなど、アセットの作成または更新の要件に違反しているので、呼び出しを実行できません。また、次の操作を実行しようとした際にも、このエラーが発生する可能性があります。

  • ソーシャルコンテンツを含むランディングページのコンテンツを取得。
  • 特定のアセットタイプを含むプログラムを複製(詳しくは、プログラムの複製を参照してください)。
  • ドラフトのないアセット(つまり、既に承認済みのアセット)を承認。
710
親フォルダーが見つかりません
指定した親フォルダーが見つかりませんでした
711
互換性のないフォルダータイプ
指定されたフォルダーは、リクエストを満たすのに適切なタイプではありませんでした
712
個人取引先への結合操作が無効です
Salesforce 個人取引先であるリードを結合しようとしたことにより、「リードを結合」呼び出しが失敗しました。Salesforce 個人取引先は、Salesforce で統合する必要があります。
713
一時的なエラー
API 呼び出し時に、システムリソースが一時的に使用できませんでした。このエラーが発生した場合は、しばらく待ってからリクエストを再試行することをお勧めします。
714
デフォルトのレコードタイプが見つかりません
デフォルトのレコードタイプが見つからなかったことにより、「リードを結合」呼び出しが失敗しました。
718
ExternalSalesPersonID が見つかりません
存在しない「ExternalSalesPersonID」値を使用して、「商談を同期」呼び出しが行われました。
719
ロック待機タイムアウト例外
「プログラムを複製」呼び出しが行われ、ロックの待機中にタイムアウトになりました。

レコードレベル record_level_errors

レコードレベルのエラーは、個々のレコードに対する操作は完了できなかったが、リクエスト自体は有効であったことを示します。レコードレベルのエラーを含む応答は、次のパターンに従います。

応答

{
   "requestId":"e42b#14272d07d78",
   "success":true,
   "result":[
      {
         "id":50,
         "status":"created"
      },
      {
         "id":51,
         "status":"created"
      },
      {
         "status":"skipped",
         "reasons":[
            {
               "code":"1005",
               "message":"Lead already exists"
            }
         ]
      }
   ]
}

呼び出しの結果配列に含まれるレコードは、リクエストの入力配列と同じ方法で順序付けられます。
成功したリクエストの各レコードは、個別に成功または失敗する可能性があります。この結果は、応答の結果配列に含まれる各レコードのステータスフィールドで示されます。これらのレコードの "status" フィールドは "skipped" になり、"reasons" 配列が存在します。各理由には、"code" メンバーと "message" メンバーが含まれます。コードは常に 1xxx で、メッセージにはレコードがスキップされた理由が示されます。例えば、「リードを同期」リクエストの"action" が "createOnly" に設定されているが、送信済みレコードのキーの 1 つに対してリードが既に存在する場合です。この場合、コード 1005 が返され、上記のように「リードは既に存在します」というメッセージが表示されます。

レコードレベルのエラーコード

応答コード
説明
コメント
1001
無効な値「%s」。タイプ「%s」が必須です
パラメーター値のタイプが一致しない場合は、エラーが生成されます。例えば、整数パラメーターに指定された文字列値です。
1002
必須パラメーター「%s」の値がありません
リクエストに必須パラメーターがない場合は、エラーが生成されます
1003
無効なデータ
送信済みのデータが、指定されたエンドポイントまたはモードに対して有効なタイプではない場合(アクションが createOnly として指定されたリードに対して ID が送信された場合や、バッチキャンペーンでリクエストキャンペーンを使用している場合など)。
1004
リードが見つかりません
syncLead に対して、アクションが “updateOnly” で、リードが見つからない場合
1005
リードは既に存在します
syncLead に対して、アクションが “createOnly” で、リードが既に存在している場合
1006
フィールド「%s」が見つかりません
呼び出しに含まれるフィールドは、有効なフィールドではありません。
1007
複数のリードがルックアップ条件に一致しています
複数のリードがルックアップ条件に一致しています。更新は、キーが単一のレコードに一致する場合にのみ実行できます
1008
パーティション「%s」へのアクセスが拒否されました
カスタムサービスのユーザには、レコードが存在するパーティションを持つワークスペースへのアクセス権がありません。
1009
パーティション名を指定する必要があります
1010
パーティションの更新は許可されていません
指定されたレコードは別のリードパーティションに既に存在します。
1011
フィールド「%s」はサポートされていません
ルックアップフィールドまたは「filterType」がサポートされていない標準フィールド(例:firstName、lastName)で指定されている場合
1012
無効な cookie 値「%s」
「cookie」パラメーターに無効な値を指定して、リードを関連付けを呼び出した場合に発生する可能性があります。 このエラーは、「filterType=cookies」と、「filterValues」パラメーターの無効な値を使用して、フィルタータイプによるリードを取得を呼び出した場合にも発生します。
1013
オブジェクトが見つかりません
「ID によるオブジェクト(リスト、キャンペーン)を取得」で、このエラーコードが返されます
1014
オブジェクトを作成できませんでした
オブジェクト(リスト)を作成できませんでした
1015
リードがリストにありません
指定されたリードは、ターゲットリストのメンバーではありません
1016
読み込みが多すぎます
キューに入れられた読み込みが多すぎます。最大 10 個まで許可されます
1017
オブジェクトは既に存在します
レコードが既に存在するので、作成に失敗しました
1018
CRM が有効になっています
インスタンスでネイティブ CRM 統合が有効になっているので、アクションを実行できませんでした。
1019
読み込み進行中
ターゲットリストは既に読み込まれています
1020
プログラムする複製が多すぎます
サブスクリプションは、その日のスケジュールプログラムで割り当てられた「cloneToProgramName」の使用量に達しました
1021
会社の更新は許可されていません
syncLead 中に会社の更新は許可されません
1022
オブジェクトが使用されています
オブジェクトが別のオブジェクトで使用されている場合、削除は許可されません
1025
プログラムステータスが見つかりません
「リードのプログラムステータスを変更」に指定されたステータスは、プログラムのチャネルで使用可能なステータスと一致しませんでした。
1026
カスタムオブジェクトが有効になっていません
インスタンスでカスタムオブジェクトの統合が有効になっていないので、アクションを実行できませんでした。
1027
最大アクティビティタイプ制限に達しました
サブスクリプションは、使用可能なカスタムアクティビティタイプの最大数に達しました。
1028
最大フィールド制限に達しました
カスタムアクティビティには、最大 20 個のセカンダリ属性を設定できます。
1029
  • キュー内のジョブが多すぎます
  • 書き出しの毎日の割り当て量を超えました
  • サブスクリプションでは、一度にキュー内に最大 10 個の一括抽出ジョブが許可されます。
  • デフォルトでは、抽出ジョブは 1 日あたり 500 MB に制限されます(毎日午前 12:00 CST にリセットされます)。
1035
サポートされていないフィルタータイプ
一部のサブスクリプションでは、updatedAt、smartListId、smartListName のリードの一括抽出フィルタータイプはサポートされていません。
1036
入力に重複したオブジェクトが見つかりました
同じ外部キーを使用して 2 つ以上のレコードを更新する呼び出しが行われました。例えば、複数の会社に対して同じ externalCompanyId を使用する「会社を同期」呼び出しです。
1037
リードはスキップされました
リードは、既にこのステータスにあるか、このステータスを過ぎているので、スキップされました。
1042
無効な runAt の日付
「キャンペーンをスケジュール」に指定した runAt の日付が将来の遠すぎる日付でした(最大 2 年)。
1048
カスタムオブジェクトの「ドラフトを破棄」に失敗しました
カスタムオブジェクトのドラフトバージョンを破棄する呼び出しが実行されました。
1049
アクティビティを作成できませんでした
属性の配列が長すぎます。 レコードに渡された属性の配列が最大長の 65536 バイトを超えました
1076
mergeInCRM フラグを使用したリードを結合呼び出しは 4 です。
重複したレコードを作成しています。代わりに既存のレコードを使用することをお勧めします。 これは、Salesforce で結合する際に Marketo が受信するエラーメッセージです。
1077
「SFDC フィールド」の長さが原因で、リードを結合呼び出しに失敗しました
mergeInCRM が true に設定された「リードを結合」呼び出しは、「SFDC フィールド」が許可された文字数の制限を超えたので失敗しました。修正するには、「SFDC フィールド」の長さを短くするか、mergeInCRM を false に設定します。
1078
エンティティが削除された、リード/取引先責任者ではない、またはフィールドフィルター条件が一致しないので、リードを結合呼び出しが失敗しました。
結合失敗、ネイティブに同期された CRM で結合操作を実行できません これは、Salesforce で結合する際に Marketo が受信するエラーメッセージです。
recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59