ランタイム エラー カタログ

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動
情報

Apigee Edge でのエラー

Apigee Edge を介して API リクエストが行われると、Apigee Edge コンポーネントの Router と Message Processor またはバックエンド サーバーが、クライアント アプリケーションにエラーを返すことができます。

Message Processor からのエラー

Message Processor は、ポリシーを処理し、バックエンド サーバーとやり取りする Apigee Edge のコア コンポーネントです。次のような問題が検出された場合は、エラーが返されることがあります。

  • ネットワーク接続の問題、TLS handshake の失敗、バックエンド サーバーを使用できない、バックエンド サーバーとの通信中のレスポンスの欠如
  • ポリシー実行時の障害
  • 無効な HTTP ヘッダー、エンコード、パス、HTTP 仕様に準拠していない、製品の制限を超えているなど
    • クライアント アプリケーションから送信された HTTP リクエストを使用
    • または

    • バックエンド サーバーによって送信された HTTP レスポンスを使用
  • その他

Message Processor からのエラーの例

Message Processor では、常に HTTP ステータス コードとエラー メッセージに加えて、次のような JSON 形式のエラーコードが返されます。

クライアント アプリケーションは、次の例のようなレスポンス コードを取得します。

HTTP/1.1 414 Request-URI Too Long

Message Processor からのエラー レスポンスは次の形式で表示されます。

{
   "fault":{
      "faultstring":"request line size exceeding 7,168",
      "detail":{
         "errorcode":"protocol.http.TooBigLine"
      }
   }
}

エラー レスポンスのフィールドの説明:

フィールド 説明
faultstring 考えられるエラー原因を示すエラー メッセージが含まれます。
errorcode エラーに関連付けられているエラーコード(障害コードとも呼ばれます)

ランタイム エラー カタログ

このエラーカタログには、Apigee Edge Message Processor コンポーネントから返されるランタイム エラーコード(ポリシー以外のエラー)について知っておくべきすべての情報が含まれています。各エラーコードについて、次の情報が含まれています。

  • HTTP ステータス コード
  • エラー メッセージ
  • 考えられるエラー原因
  • 関連する HTTP 仕様やプロダクトの制限
  • エラーの原因を診断する手順と、エラーを自分で解決するために適用できる効果的な解決策(利用可能な場合)が記載されているハンドブックと動画
  • ご自身によるエラー解決策

次のエラーコード カテゴリが対象となります。

下の [検索] ボックスを使って表をフィルタリングすれば、特定のエラーコードについて上記の情報を確認できます。表内の任意のフィールドのステータス コードまたはコンテンツを検索できます。

エラーコード 説明 修正

flow.*

flow.APITimedOut

  • HTTP ステータス コード:
504 Gateway Timeout
  • エラー メッセージ:
API timed out
  • 考えられる原因:

このエラーは、次の場合に発生します。

  • バックエンド サーバーからの応答が、特定の API プロキシのプロパティ api.timeout で構成されているタイムアウト期間内に戻ってこない。
  • オペレーションの計算負荷が高い、あるいは高負荷、低パフォーマンスな状態にあるため、ポリシーの実行に時間がかかっている。

注: このハンドブックでは、エラーコード messaging.adaptors.http.flow.GatewayTimeout のトラブルシューティング手順について説明しますが、同じハンドブックを使用して flow.APITimedOut エラーコードのトラブルシューティングを行うこともできます。

プレイブック

flow.SharedFlowNotFound

  • HTTP ステータス コード:
500 Internal Server Error
  • エラー メッセージ:
Shared Flow {shared_flow_name} Not Found
  • 考えられる原因:

このエラーは、特定の共有フローが次の場合に発生します。

  • 存在しない
  • または

  • 存在するがデプロイされていない
プレイブック

messaging.adaptors.http.flow

messaging.adaptors.http.flow.ApplicationNotFound

  • HTTP ステータス コード:
404 Not Found
  • エラー メッセージ:
Unable to identify proxy for host: {virtual_host} and url: {pathsuffix}
  • 考えられる原因:

このエラーは、次のいずれかのシナリオで発生します。

  1. 具体的な API プロキシは次のとおりです。
    1. 特定の仮想ホストでリクエストを受信するように構成されていない
    2. リクエストで使用されている特定のパスでリクエストを受け入れるように構成されていない
    3. API リクエストを行う特定の環境にデプロイされていない
    4. 1 つ以上の Message Processor にデプロイされていない
  2. API リクエストを行う環境が 1 つ以上の Message Processor に読み込まれていない
プレイブック
このエラーは、複数の仮想ホストに同じホスト エイリアスとポート番号がある場合にも発生する可能性があります。 ハンドブック

messaging.adaptors.http.flow.DecompressionFailureAtRequest

  • HTTP ステータス コード:
400 Bad Request
  • エラー メッセージ:
Decompression failure at request
  • 考えられる原因:

このエラーは、次の場合にのみ発生します。

  • HTTP リクエスト ヘッダー Content-Encoding で指定されたエンコードが有効であり、 Apigee Edge でサポートされていること。
  • ただし

  • HTTP リクエストの一部としてクライアントから送信されるペイロードの形式が、Content-Encoding ヘッダーで指定されたエンコード形式と一致していない
プレイブック

messaging.adaptors.http.flow.DecompressionFailureAtResponse

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Decompression failure at response
  • 考えられる原因:

このエラーは、次の場合にのみ発生します。

  • バックエンド/ターゲット サーバーの HTTP レスポンス ヘッダー Content-Encoding で指定されたエンコードが有効で、 Apigee Edge によってサポートされている
  • ただし

  • HTTP レスポンスの一部としてバックエンド / ターゲット サーバーによって送信されるペイロード形式が、Content-Encoding ヘッダーで指定されたエンコード形式と一致していない
ハンドブック

messaging.adaptors.http.flow.ErrorResponseCode

  • HTTP ステータス コード:
500

プレイブック

動画

  • エラー メッセージ:
エラー メッセージと形式は、バックエンド サーバーの実装によって異なります。
  • 考えられる原因:
このエラーは、バックエンド サーバーが Apigee Edge にステータス コード 500 で応答した場合に発生します。
  • HTTP ステータス コード:
503

PLAYBOOK

動画

  • エラー メッセージ:
エラー メッセージと形式は、バックエンド サーバーの実装によって異なります。
  • 考えられる原因:
このエラーは、バックエンド サーバーが Apigee Edge にステータス コード 503 で応答した場合に発生します。
  • HTTP ステータス コード:
504 プレイブック
  • エラー メッセージ:
エラー メッセージと形式は、バックエンド サーバーの実装によって異なります。
  • 考えられる原因:
このエラーは、バックエンド サーバーが Apigee Edge にステータス コード 504 で応答した場合に発生します。

注: エラーコード messaging.adaptors.http.flow.ErrorResponseCode はクライアント アプリケーションに送信されるエラー メッセージの一部として返されません。このエラーコードは、バックエンド サーバーがエラーと 4XX ステータス コードまたは 5XX ステータス コードのいずれかで応答するたびに Apigee Edge によって設定されるためです。このエラーコードは、API Monitoring、NGINX アクセスログ、分析データベースで確認できます。

messaging.adaptors.http.flow.GatewayTimeout

  • HTTP ステータス コード:
504 Gateway Timeout
  • エラー メッセージ:
Gateway Timeout
  • 考えられる原因:
このエラーは、Message Processor で構成された I/O タイムアウト期間内にバックエンド サーバーが Apigee Edge Message Processor に応答しない場合に発生します。
ハンドブック

messaging.adaptors.http.flow.LengthRequired

  • HTTP ステータス コード:
411 Length Required
  • エラー メッセージ:
'Content-Length' is missing
  • 考えられる原因:

このエラーは、Apigee Edge に送信される HTTP POST リクエストおよび PUT リクエストの一部として、クライアント アプリケーションから Content-Length ヘッダーが渡されない場合に発生します。

注: このエラーによって失敗したリクエストは、Trace ツールでキャプチャできません。これは、Message Processor が、リクエストを処理し、API プロキシで任意のポリシーを実行するよりかなり前の段階でこの検証を行うためです。

  • HTTP の仕様:
RFC セクション 3.3.2: Content-Length

修正

このエラーに対処する手順は次のとおりです。

  1. クライアント アプリケーションが、Apigee Edge に送信される HTTP POST および PUT リクエストの一部として、ヘッダー Content-Length を常に渡すようにします。例:

    curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
    
  2. POST リクエストと PUT リクエストで空のペイロードを渡す場合でも、ヘッダー Content-Length: 0 が渡されるようにしてください。例:

    curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
    

messaging.adaptors.http.flow.NoActiveTargets

  • HTTP ステータス コード:
503 Service Unavailable
  • エラー メッセージ:
The Service is temporarily unavailable
  • 考えられる原因:

このエラーは、Apigee Edge で TargetServer を使用している場合に、次のいずれかのシナリオで発生します。

  1. カスタム認証サーバーによるバックエンド サーバーホストの DNS 解決が正しくないと、接続エラーにつながる IP アドレスの不具合が生じる。
  2. 次の原因による接続タイムアウト エラー:
    1. バックエンド サーバーのファイアウォール制限により、Apigee Edge がバックエンド サーバーに接続できない。
    2. Apigee Edge とバックエンド サーバー間のネットワーク接続の問題。
  3. TargetServer で指定されたホストが正しくないか、不要な文字(スペースなど)が含まれている。

ハンドブック

動画

このエラーは、ターゲット サーバーのヘルスチェックをモニタリングするように構成されたヘルスチェックが失敗した場合にも発生することがあります。

ハンドブック

動画

messaging.adaptors.http.flow.RequestTimeOut

  • HTTP ステータス コード:
408 Request Timeout
  • エラー メッセージ:
Request timed out
  • 考えられる原因:
このエラーは、Message Processor コンポーネントで構成された I/O タイムアウト期間中に、Apigee Edge Message Processor がクライアント アプリケーションからリクエスト ペイロードを受信しない場合に発生します。

修正

クライアント アプリケーションが、Apigee Edge の Message Processor コンポーネントに構成された I/O タイムアウト期間内にリクエスト ペイロードを送信するようにします。

messaging.adaptors.http.flow.ServiceUnavailable

  • HTTP ステータス コード:
503 Service Unavailable
  • エラー メッセージ:
The Service is temporarily unavailable
  • 考えられる原因:

このエラーは、次のいずれかのシナリオで発生します。

  1. カスタム認証サーバーによるバックエンド サーバーホストの DNS 解決が正しくないと、接続エラーにつながる IP アドレスの不具合が生じる。
  2. 次の原因による接続タイムアウト エラー:
    1. バックエンド サーバーのファイアウォール制限により、Apigee Edge がバックエンド サーバーに接続できない。
    2. Apigee Edge とバックエンド サーバー間のネットワーク接続の問題。
  3. ターゲット エンドポイントで指定されたターゲット サーバー ホストが正しくないか、不要な文字(スペースなど)が含まれている。

ハンドブック

DNS エラー:

動画

ネットワーク接続:

動画

また、Message Processor がバックエンド サーバーにリクエスト ペイロードを送信している間に、バックエンド サーバーが接続を早期に閉じた場合にも、このエラーが発生することがあります。 プレイブック

messaging.adaptors.http.flow.SslHandshakeFailed

  • HTTP ステータス コード:
503 Service Unavailable
  • エラー メッセージ:
SSL Handshake failed {error_message}
  • 考えられる原因:

このエラーは、Apigee Edge の Message Processor とバックエンド サーバー間の SSL handshake プロセス中に、次の場合に発生します。

  1. Apigee Edge の Message Processor のトラストストア:
    • バックエンド サーバーの完全な証明書チェーンと一致しない証明書チェーンがある
    • または

    • バックエンド サーバーの完全な証明書チェーンが含まれていない
  2. バックエンド サーバーによって提示される証明書チェーン:
    • ターゲット エンドポイントで指定されたホスト名と一致しない完全修飾ドメイン名(FQDN)が含まれている
    • または

    • 不正確 / 不完全な証明書チェーンが含まれている

プレイブック

動画

messaging.adaptors.http.flow.UnexpectedEOFAtTarget

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Unexpected EOF at target
  • 考えられる原因:

このエラーは、次のいずれかのシナリオで発生します。

  1. TargetServer が、Apigee Edge で TLS/SSL 接続をサポートするように正しく構成されていない。
  2. Apigee Edge がバックエンド サーバーからのレスポンスを待機している間、バックエンド サーバーが接続を突然閉じることがあります。
  3. Apigee とバックエンド サーバーでキープアライブ タイムアウトが正しく構成されていない。
PLAYBOOK

messaging.runtime.*

messaging.runtime.RouteFailed

  • HTTP ステータス コード:
500 Internal Server Error
  • エラー メッセージ:
Unable to route the message to a TargetEndpoint
  • 考えられる原因:

このエラーは、次の理由により Apigee Edge がどの TargetEndpoint にもリクエストをルーティングできない場合に発生します。

  • プロキシのリクエストに一致するルートルール(<RouteRule>)の条件がない
  • AND

  • ProxyEndpoint にデフォルトのルートルールが定義されていない(例: <RouteRule>、条件なし)

修正

このエラーに対処する手順は次のとおりです。

  1. ProxyEndpoint で定義されたルートルールを確認し、リクエストに一致するルートルール条件が少なくとも 1 つ存在するように変更します。
  2. 複数の RouteRules がある場合は、条件なしでデフォルトのルートルールを定義することをおすすめします。
  3. ProxyEndpoint ではルールが上から下への順に評価されるため、デフォルトのルートルールが条件付きルートのリストの最後に常に定義されていることを確認してください。

ProxyEndpoint での <RouteRule> 条件の定義について詳しくは、条件付きターゲットをご覧ください。

messaging.runtime.SenseRaiseFault

  • HTTP ステータス コード:
403 Forbidden
  • エラー メッセージ:
Sense Fault
  • 考えられる原因:
このエラーは、Apigee Sense ルールの一部としてブロックされている特定のクライアント IP アドレスから API リクエストが送信された場合に発生します。

修正

このエラーに対処する手順は次のとおりです。

  1. Apigee Sense で構成されたルールを確認して、特定のクライアント IP アドレスがブロックされていることを確認します。ブロックされている場合は、設計どおりに動作していることを示します。
  2. 特定のクライアント IP アドレスがブロックされていないにもかかわらず、このエラーが引き続き発生する場合は、Apigee Edge サポートにお問い合わせください。

protocol.http.* - Caused due to bad request

protocol.http.BadFormData

  • HTTP ステータス コード:
500 Internal Server Error
  • エラー メッセージ:
Bad Form Data
  • 考えられる原因:

このエラーは、次のすべての条件が満たされた場合にのみ発生します。

  1. クライアントが Apigee Edge に送信する HTTP リクエストに以下が含まれる。
    • Content-Type: application/x-www-form-urlencoded、および
    • パーセント記号(%)付き、またはパーセント記号(%)の後にフォーム - セクション 17.13.4.1 によって許可されていない無効な 16 進数文字が続くフォームデータ。
  2. Apigee Edge の API プロキシは、リクエスト フローで ExtractVariables ポリシーまたは AssignMessage ポリシーを使用して、許可されていない文字を含む特定のフォーム パラメータを読み取ります。
プレイブック

protocol.http.DuplicateHeader

  • HTTP ステータス コード:
400 Bad Request
  • エラー メッセージ:
Duplicate Header "{header_name}"
  • 考えられる原因:
このエラーは、Apigee Edge で重複が許可されていない特定の HTTP ヘッダーが、クライアント アプリケーションから Apigee Edge に送信される HTTP リクエストの一部と同じ値または異なる値で複数回表示される場合に発生します。
  • HTTP の仕様:
RFC 7230、セクション 3.2.2: Field Order
PLAYBOOK

protocol.http.EmptyHeaderName

  • HTTP ステータス コード:
400 Bad Request
  • エラー メッセージ:
Header name cannot be empty
  • 考えられる原因:
このエラーは、クライアント アプリケーションによる Apigee Edge への HTTP リクエストの一部として送信されたヘッダー名が空である場合に発生します。
  • HTTP の仕様:
RFC 7230、セクション 3.2: Header Fields

修正

クライアント アプリケーションから Apigee Edge に送信される HTTP リクエストに、有効なヘッダー名が常に含まれていることを確認します( RFC 7230 のセクション 3.2: Header Fields に準拠)。

protocol.http.HeaderNameWithNonAsciiChar

  • HTTP ステータス コード:
400 Bad Request
  • エラー メッセージ:
Header {header_name} contains non ascii character {character}
  • 考えられる原因:
このエラーは、クライアント アプリケーションから Apigee Edge への HTTP リクエストの一部として送信されたヘッダー名に、ASCII 以外の文字が含まれている場合に発生します。
  • HTTP の仕様:

RFC 7230、セクション 3.2: Header FieldsRFC 7230、セクション 3.2.6: Field Value Components

修正

Apigee Edge に送信されるクライアントの HTTP リクエストで、ヘッダー名に ASCII 以外の文字が含まれていないことを確認します( RFC 7230 のセクション 3.2.6: Field Value Components に準拠)。

protocol.http.HeaderWithInvalidChar

  • HTTP ステータス コード:
400 Bad Request
  • エラー メッセージ:
Header {header_name} contains invalid character {character}
  • 考えられる原因:
このエラーは、クライアント アプリケーションから Apigee Edge への HTTP リクエストの一部として送信されたヘッダー名に、無効な文字(等号(=)、カンマ(,)、セミコロン(;)、タブ、CRLF、改行文字など)が含まれている場合に発生します。
  • HTTP の仕様:

RFC 7230、セクション 3.2: Header FieldsRFC 7230、セクション 3.2.6: Field Value Components

修正

クライアント アプリケーションから Apigee Edge に送信される HTTP リクエストのヘッダー名に、無効な文字が含まれていないことを確認します( RFC 7230、セクション 3.2.6: Field Value Components に準拠)。

protocol.http.InvalidPath

  • HTTP ステータス コード:
400 Bad Request
  • エラー メッセージ:
Invalid path {path}
  • 考えられる原因:
このエラーは、クライアント アプリケーションから Apigee Edge に送信される HTTP リクエストの URL のパスに、仕様の RFC 3986 のセクション 3.3: Path で許可されていない文字が含まれている場合に発生します。
  • HTTP の仕様:

RFC 3986、セクション 3: Syntax ComponentsRFC 3986、セクション 3.3: Path

修正

クライアント アプリケーションから Apigee Edge に送信される HTTP リクエスト URL のパスに、 RFC 3986 のセクション 3.3: Path で許可されていない文字が含まれていないことを確認します。

protocol.http.TooBigBody

  • HTTP ステータス コード:
413 Request Entity Too Large
  • エラー メッセージ:
Body buffer overflow
  • 考えられる原因:
このエラーは、Apigee Edge への HTTP リクエストの一部としてクライアント アプリケーションによって送信されたペイロード サイズが、Apigee Edge で許可されている上限を超えている場合に発生します。
  • 上限:
Apigee Edge の制限
プレイブック

protocol.http.TooBigHeaders

  • HTTP ステータス コード:
431 Request Header Fields Too Large
  • エラー メッセージ:
request headers size exceeding {limit}
  • 考えられる原因:
Apigee Edge への HTTP リクエストの一部としてクライアント アプリケーションによって送信されるすべてのリクエスト ヘッダーの合計サイズが、Apigee Edge で許可されている上限を超えている。
  • HTTP の仕様:
RFC 6585、セクション 5: 431 Request Header Fields Too Large
  • 上限:
Apigee Edge の上限
ハンドブック

protocol.http.TooBigLine

  • HTTP ステータス コード:
414 Request-URI Too Long
  • エラー メッセージ:
request line size exceeding {limit}
  • 考えられる原因:
このエラーは、Apigee Edge への HTTP リクエストの一部としてクライアント アプリケーションによって送信されるリクエスト ラインのサイズが、Apigee Edge で許可されている上限を超えている場合に発生します。
  • 上限:
Apigee Edge の上限
ハンドブック

protocol.http.UnsupportedEncoding

  • HTTP ステータス コード:
415 Unsupported Media
  • エラー メッセージ:
Unsupported Encoding "{encoding}"
  • 考えられる原因:
このエラーは、HTTP レスポンスの一部としてクライアントから送信された Content-Encoding ヘッダーに、 Apigee Edge でサポートされていないエンコード/ペイロード形式が含まれている場合に発生します。
  • HTTP の仕様:
RFC 7231、セクション 6.5.13: 415 Unsupported Media Type
ハンドブック

protocol.http.* - Caused by target

protocol.http.BadPath

  • HTTP ステータス コード:
500 Internal Server Error
  • エラー メッセージ:
Invalid request path
  • 考えられる原因:
このエラーは、フロー変数 target.url で表されるバックエンド サーバーのリクエスト URL に、スラッシュ(/)の代わりに、疑問符(?)で始まるパスが含まれている場合に発生します。これは無効です。
  • HTTP の仕様:

RFC 3986、セクション 3: Syntax ComponentsRFC 3986、セクション 3.3: Path

プレイブック

protocol.http.DuplicateHeader

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Duplicate Header "{header_name}"
  • 考えられる原因:
このエラーは、Apigee Edge で重複が許可されていない特定の HTTP ヘッダーが、バックエンド サーバーから Apigee Edge に送信される HTTP レスポンスの一部と同じ値または異なる値で複数回表示される場合に発生します。
  • HTTP の仕様:
RFC 7230、セクション 3.2.2: Field Order
プレイブック

protocol.http.EmptyHeaderName

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Header name cannot be empty
  • 考えられる原因:
このエラーは、Apigee Edge への HTTP レスポンスの一部としてバックエンド サーバーから送信されたヘッダー名が空である場合に発生します。
  • HTTP の仕様:
RFC 7230、セクション 3.2: Header Fields

修正

バックエンド サーバーから Apigee Edge に送信される HTTP レスポンスに、有効なヘッダー名が常に含まれていることを確認します( RFC 7230 のセクション 3.2: Header Fields に準拠)。

protocol.http.EmptyPath

  • HTTP ステータス コード:
500 Internal Server Error
  • エラー メッセージ:
Request path cannot be empty
  • 考えられる原因:
このエラーは、フロー変数 target.url で表されるバックエンド サーバーの HTTP リクエスト URL に空のパスが含まれている場合に発生します。
  • HTTP の仕様:

RFC 3986、セクション 3: Syntax ComponentsRFC 3986、セクション 3.3: Path

プレイブック

protocol.http.HeaderNameWithNonAsciiChar

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Header {header_name} contains non ascii character {character}
  • 考えられる原因:
このエラーは、Apigee Edge への HTTP レスポンスの一部としてバックエンド サーバーから送信されたヘッダー名に ASCII 以外の文字が含まれている場合に発生します。
  • HTTP の仕様:

RFC 7230、セクション 3.2: Header FieldsRFC 7230、セクション 3.2.6: Field Value Components

修正

Apigee Edge に送信されるバックエンド サーバーの HTTP レスポンスで、ヘッダー名に ASCII 以外の文字が含まれていないことを確認します( RFC 7230 のセクション 3.2.6: Field Value Components に準拠)。

protocol.http.HeaderWithInvalidChar

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Header {header_name} contains invalid character {character}
  • 考えられる原因:
このエラーは、バックエンド サーバーが HTTP レスポンスの一部として送信したヘッダー名に無効な文字(等号(=)、カンマ(,)、セミコロン(;)、タブ、CRLF、改行文字など)が含まれている場合に発生します。
  • HTTP の仕様:

RFC 7230、セクション 3.2: Header FieldsRFC 7230、セクション 3.2.6: Field Value Components

修正

Apigee Edge に送信されるバックエンド サーバーの HTTP レスポンスで、ヘッダー名に無効な文字が含まれていないことを確認します( RFC 7230 のセクション 3.2.6: Field Value Components に準拠)。

protocol.http.ProxyTunnelCreationFailed

  • HTTP ステータス コード:
503 Service Unavailable
  • エラー メッセージ:
Proxy refused to create tunnel with response status {status code}
  • 考えられる原因:

このエラーは、プロキシ サーバーによる Apigee Edge とバックエンド サーバー間のトンネルの作成中に、ファイアウォール、ACL(アクセス制御リスト)、DNS の問題、バックエンド サーバーの可用性などの原因により発生します。

注: エラー メッセージ(faultstring)のステータス コードに、問題の大まかな原因が示されています。

プレイブック

protocol.http.Response306Reserved

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Response Status code 306 is reserved, so can't be used.
  • 考えられる原因:

このエラーは、バックエンド サーバーが Apigee Edge にステータス コード 306 で応答した場合に発生します。

ステータス コード 306 は、以前のバージョンの HTTP 仕様で定義されていたものです。現行の HTTP 仕様では、このコードは予約済みであるため使用できません。

  • HTTP の仕様:
RFC 7231、セクション 6.3.5: 306 Reserved

修正

ステータス コード 306 は予約済みであるため、Apigee Edge にレスポンスを送信している間、バックエンド サーバーがこのステータス コードを使用しないようにします。

protocol.http.Response405WithoutAllowHeader

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Received 405 Response without Allow Header
  • 考えられる原因:
バックエンド サーバーが、「Allow」ヘッダーなしでステータス コード 405 Method Not Allowed を返している。
  • HTTP の仕様:

RFC 7231、セクション 6.5.5: 405 Method Not AllowedRFC 7231、セクション 7.4.1: Allow

プレイブック

protocol.http.ResponseWithBody

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Received {status_code} Response with message body
  • 考えられる原因:

このエラーは、バックエンド サーバーから Apigee Edge への HTTP レスポンスが 204 No Content または 205 Reset Content であるのに、レスポンスの本文や次のヘッダーが含まれている場合に発生します。

  • Content-Length
  • Content-Encoding
  • Transfer-Encoding
  • HTTP の仕様:

RFC 7231、セクション 6.3.5: 204 No ContentRFC 7231、セクション 6.3.6: 205 Reset Content

プレイブック

protocol.http.TooBigBody

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
Body buffer overflow
  • 考えられる原因:
このエラーは、Apigee Edge への HTTP リクエストの一部としてクライアント アプリケーションによって送信されたペイロード サイズが、Apigee Edge で許可されている上限を超えている場合に発生します。
  • 上限:
Apigee Edge の上限
ハンドブック

protocol.http.TooBigHeaders

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
response headers size exceeding {limit}
  • 考えられる原因:
このエラーは、Apigee Edge への HTTP レスポンスの一部としてバックエンド サーバーから送信されたすべてのレスポンス ヘッダーの合計サイズが、Apigee Edge で許可されている上限を超えている場合に発生します。
  • 上限:
Apigee Edge の制限
プレイブック

protocol.http.TooBigLine

  • HTTP ステータス コード:
502 Bad Gateway
  • エラー メッセージ:
response line size exceeding {limit}
  • 考えられる原因:
このエラーは、Apigee Edge への HTTP レスポンスの一部としてバックエンド サーバーによって送信されたレスポンス ラインのサイズが、Apigee Edge で許可されている上限を超えている場合に発生します。
  • 上限:
Apigee Edge の上限
ハンドブック

protocol.http.UnsupportedEncoding

  • HTTP ステータス コード:
415 Unsupported Media
  • エラー メッセージ:
Unsupported Encoding "{encoding}"
  • 考えられる原因:
このエラーは、HTTP レスポンスの一部としてバックエンド サーバーによって送信される Content-Encoding ヘッダーに、 Apigee Edge でサポートされていないエンコード/ペイロード形式が含まれている場合に発生します。
  • HTTP の仕様:
RFC 7231、セクション 6.5.13: 415 Unsupported Media Type
プレイブック

security.util.*

security.util.KeyAliasNotFound

  • HTTP ステータス コード:
500 Internal Server Error
  • エラー メッセージ:
KeyAlias {KeyAlias_name} is not found in Keystore {Keystore_Name}
  • 考えられる原因:

このエラーは、TargetEndpoint または TargetServer で参照されている特定の KeyAlias が、特定のキーストアで見つからない場合に発生します。

修正

TargetEndpoint または TargetServer で指定された KeyAlias が存在し、それが特定のキーストアの一部であることを確認します。

security.util.TrustStoreWithNoCertificates

  • HTTP ステータス コード:
500 Internal Server Error
  • エラー メッセージ:
TrustStore {truststore_name} has no certificates
  • 考えられる原因:

このエラーは、TargetEndpoint または TargetServer で参照されている特定のトラストストアに証明書が含まれていない場合に発生します。

修正

バックエンド サーバーの証明書を検証し、TargetEndpoint または TargetServer でトラストストアを使用する場合は、トラストストアにバックエンド サーバーの有効な証明書が含まれていることを確認します。