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

現在、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

ハンドブック

動画

  • エラー メッセージ:
エラー メッセージと形式は、バックエンド サーバーの実装によって異なります。
  • 考えられる原因:
このエラーは、バックエンド サーバーが 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
  • 考えられる原因:
このエラーは、Apigee Edge Message Processor が、Message Processor コンポーネントで構成された I/O タイムアウト期間内にクライアント アプリケーションからリクエスト ペイロードを受信しない場合に発生します。

解決方法

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 とバックエンド サーバーでキープアライブ タイムアウトが正しく構成されていない。
ハンドブック

messaging.runtime.*

messaging.runtime.RouteFailed

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

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

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

  • 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
ハンドブック

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: ヘッダー フィールドに従って有効なヘッダー名が常に含まれるようにします。

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: フィールド値コンポーネントを参照)。

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: フィールド値のコンポーネントを参照)。

protocol.http.InvalidPath

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

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

解決方法

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

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: ヘッダー フィールドを参照)。

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: フィールド値コンポーネントを参照)。

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: フィールド値のコンポーネントを参照)。

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、section 6.5.5: 405 Method Not Allowed RFC 7231、section 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 であるのに、レスポンスの本文や次のヘッダーの 1 つ以上を含む場合に発生します。

  • 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 でトラストストアを使用する場合は、トラストストアにバックエンド サーバーの有効な証明書が含まれていることを確認します。