Skip to content

APIのエラーと応答

この参考記事では、Braze APIの使用中に発生する可能性のあるさまざまなエラーとサーバー応答、およびそれらのトラブルシューティング方法について説明します。

サーバーの応答

POSTペイロードがサーバーで受理された場合、成功メッセージには以下の応答が返されます:

1
2
3
{
  "message" : "success"
}

成功とは、RESTful APIのペイロードが正しく形成され、プッシュ通知やメール、その他のメッセージングサービスに渡されたことのみを意味します。メッセージが実際に配信されたことを意味するわけではありません。追加の要因によって配信が妨げられる可能性があるためです(例えば、デバイスがオフライン状態である場合、プッシュトークンがAppleのサーバーによって拒否される場合、あるいは不明なユーザーIDが提供された場合など)。

/users/identifyのようなメッセージを送信しないエンドポイントの場合、成功メッセージは単にBrazeが処理リクエストを受信したことを意味します。処理後にエイリアスに一致するものが存在しない場合、リクエストは停止されます。

メッセージの送信が成功したが、致命的ではないエラーが発生した場合、以下の応答が返されます:

1
2
3
{
  "message" : "success", "errors" : [<minor error message>]
}

成功した場合、errors配列内のエラーの影響を受けなかったメッセージはすべて配信されます。メッセージに致命的なエラーがある場合、以下の応答を受け取ります:

1
2
3
{
  "message" : <fatal error message>, "errors" : [<minor error message>]
}

追跡された送信IDに対する応答

分析は常にキャンペーンで利用できます。さらに、キャンペーンがブロードキャストとして送信された場合、特定のキャンペーン送信インスタンスに対して分析が利用できます。特定のキャンペーン送信インスタンスに対してトラッキングが利用可能な場合、以下の応答を受け取ります:

1
2
3
{
  "message": "success", "send_id" : "example_send_id"
}

指定された送信IDは、/send/data_seriesエンドポイントのパラメーターとして使用して、送信固有の分析を取得できます。

エラー

サーバー応答のステータスコード要素は3桁の数字であり、コードの最初の桁が応答のクラスを定義します。

  • 2XXクラスのステータスコード(致命的ではない)は、リクエストが正常に受信され、理解され、受け入れられたことを示します。
  • 4XXクラスのステータスコード(致命的)は、クライアントエラーを示します。4XXエラーコードの全リストと説明については、致命的エラーチャートを参照してください。
  • 5XXクラスのステータスコード(致命的)は、サーバーエラーを示します。考えられる原因はいくつかあります。たとえば、アクセスしようとしているサーバーがリクエストを実行できない、サーバーがメンテナンス中でリクエストを実行できない、サーバーのトラフィックが高いレベルになっているなどです。このような場合、エクスポネンシャルバックオフでリクエストを再試行することを推奨します。インシデントまたは停止が発生した場合、Brazeはインシデント期間中に失敗したREST API呼び出しを再実行することはできません。インシデント期間中に失敗した呼び出しはすべて再試行する必要があります。
    • 502エラーは、送信先サーバーに到達する前に発生した失敗です。
    • 503エラーは、リクエストが送信先サーバーに到達したが、十分な容量がない、ネットワークに問題がある、または同様の理由でリクエストを完了できないことを意味します。
    • 504エラーは、サーバーが上流の別のサーバーから応答を受信しなかったことを示します。

致命的なエラー

リクエストが致命的なエラーに遭遇した場合、以下のステータスコードと関連するエラーメッセージが返されます。

エラーコード 説明
5XX Internal Server Error エクスポネンシャルバックオフでリクエストを再試行してください。
400 Bad Request 構文が正しくありません。
400 No Recipients リクエストにexternal IDやセグメント ID、プッシュトークンがありません。
400 Invalid キャンペーン ID 入力されたキャンペーン IDに該当するメッセージングAPI キャンペーンが見つかりませんでした。
400 Message Variant Unspecified キャンペーン IDは提供されていますが、メッセージバリエーションIDが提供されていません。
400 Invalid Message Variant 有効なキャンペーン IDを入力しましたが、メッセージバリエーションIDがそのキャンペーンのどのメッセージとも一致しません。
400 Mismatched Message Type 少なくとも1つのメッセージに、誤ったメッセージタイプのメッセージバリエーションを指定しました。
400 Invalid Extra Push Payload apple_pushまたはandroid_pushのいずれかにextraキーを指定しましたが、それはディクショナリではありません。
400 Max Input Length Exceeded /users/trackの場合、このエラーは単一のリクエストで許可されるオブジェクトの最大数を超えたことが原因です。制限はレート制限モデルによって異なります。ほとんどのお客様の場合、各リクエストはattributeseventspurchasesを合わせて最大75個のオブジェクトをサポートします。レガシーレート制限を使用しているお客様の場合、各配列は最大75個のオブジェクトを独立してサポートします。詳細については、POST: ユーザーの作成と更新を参照してください。
400 The max number of external_ids and aliases per request was exceeded 50を超えるexternal IDを呼び出したことが原因です。
400 The max number of ids per request was exceeded 50を超えるexternal IDを呼び出したことが原因です。
400 No message to send メッセージにペイロードが指定されていません。
400 Slideup Message Length Exceeded スライドアップメッセージが140文字を超えています。
400 Apple Push Length Exceeded JSONペイロードが1,912バイトを超えています。
400 Android Push Length Exceeded JSONペイロードが4,000バイトを超えています。
400 Bad Request send_atの日時を解析できません。
400 Bad Request リクエストでin_local_timeがtrueですが、会社のタイムゾーンでtimeが既に経過しています。
401 Unauthorized 無効なAPIキーです。一般的な原因は以下の通りです:

- Authorizationヘッダーが欠落しているか、形式が正しくありません。 ヘッダーの値はBearerの後にスペースとAPIキーを続ける必要があります:Authorization: Bearer YOUR-API-KEY。よくある間違いとして、Bearerの省略、Bearerの後のキーの省略、値を引用符で囲むことなどがあります。
- RESTエンドポイントが間違っています。 リクエストを間違ったインスタンスに送信しています。たとえば、アカウントがEUインスタンス(https://dashboard-01.braze.eu)にある場合、リクエストはhttps://rest.fra-01.braze.euに送信する必要があります。
- 権限が不十分です。 各APIキーは特定のワークスペースと権限のセットにスコープされています。ダッシュボードの設定 > APIキーでキーの権限を確認してください。
- APIキーが間違っています。 APIキーはワークスペース固有です。あるワークスペースのキーを別のワークスペースのリクエスト認証に使用することはできません。
403 Forbidden 料金プランが対応していない、またはアカウントが無効になっています。
403 Access Denied 使用しているREST APIキーに十分な権限がありません。一般的な原因は以下の通りです:
  • APIキーが機能より前に作成されています。APIキーが機能のリリース前に作成された場合(サブスクリプショングループやカタログなど)、そのキーはそれらの権限を自動的に継承しません。設定 > APIキーで必要な権限を持つ新しいAPIキーを作成してください。
  • エンドポイント固有の権限がありません。各APIエンドポイントには特定の権限スコープが必要です(例:users.trackemail.status)。キーの権限が呼び出しているエンドポイントと一致していることを確認してください。
  • URLに末尾のスラッシュまたはタイプミスがあります。たとえば、/users/trackの代わりに/users/track/(末尾にスラッシュあり)を使用すると、予期しないエラーが発生する可能性があります。
404 Not Found 無効なURLです。
415 Unsupported Media Type Content-Typeリクエストヘッダーが欠落しているか、正しくありません。設定ページで、Content-Typeapplication/jsonの値を追加してください。
429 Rate Limited レート制限を超えています。
New Stuff!