エラー処理
概要 overview
Adobe Experience Platform Edge Networkサーバー API の API エラーには、内部(Edge Network自体)または外部(入力、設定、アップストリーム関連)など、様々な原因が考えられます。
エラータイプ error-types
RequestProcessingError
500
InputError
4xx
ConfigurationError
422
UpstreamError
207 Multi-Status
重大度
サーバー API エラーは、重大度で分割することもできます。
- 致命的なエラー により、ディスパッチパイプラインが停止します。
- 致命的でないエラー は、リクエスト処理の続行を許可している間に、部分的な処理が行われたことを示す場合があります。
- 存在する場合、リクエストの全体的なステータスコードは
207 Multi-Status
に変更されます。
- 存在する場合、リクエストの全体的なステータスコードは
RequestProcessingError
InputError
ConfigurationError
UpstreamError
致命的なエラー fatal-errors
重大なエラーが発生すると、リクエスト処理が停止し、2xx 以外の応答ステータスが返されます。 エラータイプの節を確認して、各エラータイプに対応する期待されるステータスコードを確認します。
エラーは、エラーオブジェクトを含む応答本文を伴います。 この場合、応答本文には、RFC 7807 HTTP API に関する問題の詳細で定義されている問題の詳細が含まれます。
返される content-type は application/problem+json
メディアタイプです。 存在する場合、この応答には、エラーに関する機械で読み取り可能な詳細が含まれています。 問題の詳細には、URI タイプが含まれます。
すべてのエラーオブジェクトには type
、status
、title
、detail
および report
のメッセージプロパティがあり、API クライアントは問題が何であるかを知ることができます。
type
https://ns.adobe.com/aep/errors/<ERROR-CODE>
に従って、問題の種類を識別する URI 参照(RFC3986)。status
title
detail
report
{
"type":"https://ns.adobe.com/aep/errors/EXEG-0104-422",
"status":422,
"title":"Unprocessable entity",
"detail":"Invalid request (report attached). Please check your input and try again.",
"report":{
"errors":[
"Allowed Adobe version is 1.0 for standard 'Adobe' at index 0",
"Allowed IAB version is 2.0 for standard 'IAB TCF' at index 1",
"IAB consent string value must not be empty for standard 'IAB TCF' at index 1"
],
"requestId":"0f8821e5-ed1a-4301-b445-5f336fb50ee8",
"orgId":"53A16ACB5CC1D3760A495C99@AdobeOrg"
}
}
致命的でないエラー non-fatal-errors
致命的でないエラーは、さらに次のように分類できます。
- エラー:リクエストの処理中に発生したが、リクエスト全体が拒否されなかった問題(例: 重要でないアップストリームエラー)。
- 警告:リクエストの部分的な処理が発生したことを示す可能性のあるアップストリームサービスのメッセージ。
致命的でないエラー(警告を除く)が発生した場合、Server API は応答ステータスを 207 Multi-Status
に変更します。
一方、警告は通常、一時的な状態を表すため、ほとんどの場合に情報を提供します。これは、リクエストには完全には影響しませんでした。 この例の 1 つは、セグメント化エンジンで読み取られた部分的なプロファイルです。この場合、精度はある程度影響を受けますが、機能は引き続き提供されます。
致命的でないエラーは Problem Details フォーマットで表されますが、Edge ゲートウェイの標準レスポンス(application/json
型)に直接埋め込まれます。
{
"requestId": "72eaa048-207e-4dde-bf16-0cb2b21336d5",
"handle": [
],
"errors": [
{
"type": "https://ns.adobe.com/aep/errors/EXEG-0201-503",
"status": 503,
"title": "The 'com.adobe.experience.platform.ode' service is temporarily unable to serve this request. Please try again later."
}
],
"warnings": [
{
"type": "https://ns.adobe.com/aep/errors/EXEG-0204-200",
"status": 200,
"title": "A warning occurred while calling the 'com.adobe.audiencemanager' service for this request.",
"report": {
"cause": {
"message": "Cannot read related customer for device id: ...",
"code": 202
}
}
}
]
}
4xx
と 5xx
の応答の処理
4xx Bad Request
4xx
エラーは、429
を除き、クライアントに代わって再試行しないでください。 これらはクライアントエラーであり、成功しません。 クライアントは、リクエストを再試行する前にエラーに対処する必要があります。429 Too Many Requests
429
、Adobe Experience Platform Edge Networkまたはアップストリームサービスがリクエストをレート制限していることを示します。 この場合、このようなシナリオでは、呼び出し元は Retry-After
応答ヘッダーを尊重する必要があります。 戻ってくる応答には、ドメイン固有のエラーコードなど、HTTP 応答コードが含まれている必要があります。500 Internal Server Error
500
エラーは一般的かつ包括的なエラーです。502
と 503
を除き、500
件のエラーを再試行しないでください。 仲介者は 500
エラーで応答する必要があり、汎用エラーコード/メッセージ、またはドメイン固有のエラーコード/メッセージで応答する場合があります。502 Bad Gateway
502
、エラーの受信者は、しばらくしてからリクエストを再試行できます。503 Service Unavailable
503
エラーの受信者はリクエストを再試行できますが、Retry-After
ヘッダーに従う必要があります。504 Gateway Timeout