ポリシーエラー リファレンス

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントはこちらをご覧ください。

AccessControl ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
accesscontrol.IPDeniedAccess 403 クライアント IP アドレス、または API リクエストで渡された IP アドレスが、Access Control ポリシーの <MatchRule> 要素内の <SourceAddress> 要素で指定された IP アドレスと一致し、<MatchRule> 要素の action 属性が DENY に設定されています。
accesscontrol.InvalidIPAddressInVariable 500 <ClientIPVariable> のフロー変数に無効な IP アドレスが含まれています。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーに固有の変数をご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "IPDeniedAccess"
acl.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 acl.AC-AllowAccess.failed = true

障害レスポンスの例

{
   "fault":{
     "faultstring":"Access Denied for client ip : 52.211.243.3"
      "detail":{
         "errorcode":"steps.accesscontrol.IPDeniedAccess"
      }
   }
}

障害ルールの例

<FaultRule name="IPDeniedAccess">
    <Step>
        <Name>AM-IPDeniedAccess</Name>
        <Condition>(fault.name Matches "IPDeniedAccess") </Condition>
    </Step>
    <Condition>(acl.failed = true) </Condition>
</FaultRule>

AccessEntity ポリシー

関連情報については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

なし。

デプロイエラー

エラー名 障害文字列 HTTP ステータス 発生条件
InvalidEntityType Invalid type [entity_type] in ACCESSENTITYStepDefinition [policy_name] なし 使用するエンティティ タイプをサポートされているタイプのいずれかにする必要があります。

AssignMessage ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.assignmessage.SetVariableFailed 500 ポリシーが変数を設定できませんでした。未解決の変数の名前については、障害文字列をご覧ください。
steps.assignmessage.VariableOfNonMsgType 500

このエラーは、<Copy> 要素の source 属性が、メッセージ型以外の変数に設定されている場合に発生します。

メッセージ型の変数は HTTP リクエストとレスポンス全体を表します。組み込みの Apigee フロー変数 requestresponsemessage はメッセージ型です。メッセージ変数の詳細については、変数リファレンスをご覧ください。

steps.assignmessage.UnresolvedVariable 500

このエラーは、AssignMessage ポリシーで指定された変数が次のいずれかの場合に発生します。

  • 範囲外(ポリシーが実行されている特定のフローで使用できない)
  • または
  • 解決不能(未定義)

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidIndex AssignMessage ポリシーの <Copy> 要素または <Remove> 要素で指定されたインデックスが 0 または負の数の場合、API プロキシのデプロイに失敗します。
InvalidVariableName 子要素 <Name> が空か、<AssignVariable> 要素で指定されていない場合は、値を割り当てる有効な変数名が存在しないため、API プロキシのデプロイに失敗します。有効な変数名は必須です。
InvalidPayload ポリシーで指定されたペイロードが無効です。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="FAULT_NAME" FAULT_NAME は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "UnresolvedVariable"
assignmessage.POLICY_NAME.failed POLICY_NAME は、障害が発生したポリシーのユーザー指定の名前です。 assignmessage.AM-SetResponse.failed = true

エラー レスポンスの例

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.assignmessage.VariableOfNonMsgType"
      },
      "faultstring":"AssignMessage[AM-SetResponse]: value of variable is not of type Message"
   }
}

障害ルールの例

<FaultRule name="Assign Message Faults">
    <Step>
        <Name>AM-CustomNonMessageTypeErrorResponse</Name>
        <Condition>(fault.name Matches "VariableOfNonMsgType") </Condition>
    </Step>
    <Step>
        <Name>AM-CustomSetVariableErrorResponse</Name>
        <Condition>(fault.name = "SetVariableFailed")</Condition>
    </Step>
    <Condition>(assignmessage.failed = true) </Condition>
</FaultRule>

BasicAuthentication ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、エラーに対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.basicauthentication.InvalidBasicAuthenticationSource 500 デコードで、Base64 エンコードされた文字列に有効な値が含まれていない場合、またはヘッダーの形式が正しくない場合(たとえば、Basic で始まっていない場合)。
steps.basicauthentication.UnresolvedVariable 500 デコードまたはエンコードに必要なソース変数が存在しません。このエラーは、IgnoreUnresolvedVariables が false の場合にのみ発生する可能性があります。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 発生条件 修正
UserNameRequired 名前付きオペレーションに <User> 要素が存在する必要があります。
PasswordRequired 名前付きオペレーションに <Password> 要素が存在する必要があります。
AssignToRequired 名前付きオペレーションに <AssignTo> 要素が存在する必要があります。
SourceRequired 名前付きオペレーションに <Source> 要素が存在する必要があります。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "UnresolvedVariable"
BasicAuthentication.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 BasicAuthentication.BA-Authenticate.failed = true

エラー レスポンスの例

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.basicauthentication.UnresolvedVariable"
      },
      "faultstring":"Unresolved variable : request.queryparam.password"
   }
}

障害ルールの例

<FaultRule name="Basic Authentication Faults">
    <Step>
        <Name>AM-UnresolvedVariable</Name>
        <Condition>(fault.name Matches "UnresolvedVariable") </Condition>
    </Step>
    <Step>
        <Name>AM-AuthFailedResponse</Name>
        <Condition>(fault.name = "InvalidBasicAuthenticationSource")</Condition>
    </Step>
    <Condition>(BasicAuthentication.BA-Authentication.failed = true) </Condition>
</FaultRule>

DecodeJWS ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 発生条件
steps.jws.FailedToDecode 401 ポリシーで JWS をデコードできなかった場合。JWS が破損している可能性があります。
steps.jws.FailedToResolveVariable 401 ポリシーの <Source> 要素で指定されたフロー変数が存在しない場合に発生します。
steps.jws.InvalidClaim 401 クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。
steps.jws.InvalidJsonFormat 401 JWS ヘッダーで無効な JSON が検出された場合。
steps.jws.InvalidJws 401 JWS 署名の検証で不合格だった場合。
steps.jws.InvalidPayload 401 JWS ペイロードが無効な場合。
steps.jws.InvalidSignature 401 <DetachedContent> が省略され、JWS に分離されたコンテンツ ペイロードがある場合。
steps.jws.MissingPayload 401 JWS ペイロードが欠落している場合。
steps.jws.NoAlgorithmFoundInHeader 401 JWS がアルゴリズム ヘッダーを省略すると発生します。
steps.jws.UnknownException 401 不明な例外が発生した場合。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 発生条件
InvalidAlgorithm 有効な値: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

発生の可能性があるその他のデプロイエラー。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "TokenExpired"
JWS.failed 障害の場合は、すべての JWS ポリシーで同じ変数が設定されます。 jws.JWS-Policy.failed = true

エラー レスポンスの例

ベスト プラクティスとして、エラー処理でエラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。

障害ルールの例

<FaultRules>
    <FaultRule name="JWS Policy Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "TokenExpired")</Condition>
        </Step>
        <Condition>JWS.failed=true</Condition>
    </FaultRule>
</FaultRules>

DecodeJWT ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.jwt.FailedToDecode 401 ポリシーが JWT をデコードできない場合に発生します。JWT が無効か、形式が正しくないか、それ以外の理由でデコードできない可能性があります。
steps.jwt.FailedToResolveVariable 401 ポリシーの <Source> 要素で指定されたフロー変数が存在しない場合に発生します。
steps.jwt.InvalidToken 401 ポリシーの <Source> 要素で指定されたフロー変数が範囲外であるか、解決できない場合に発生します。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidEmptyElement デコードする JWT を含むフロー変数が、ポリシーの <Source> 要素で指定されていない場合に発生します。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "InvalidToken"
JWT.failed 障害の場合、すべての JWT ポリシーで同じ変数が設定されます。 JWT.failed = true

エラー レスポンスの例

JWT ポリシーの障害コード

ベスト プラクティスとして、エラー処理では、エラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。

障害ルールの例

    <FaultRules>
        <FaultRule name="JWT Policy Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "InvalidToken")</Condition>
            </Step>
            <Condition>JWT.failed=true</Condition>
        </FaultRule>
    </FaultRules>
    

ExtractVariables ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.extractvariables.ExecutionFailed 500

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

  • 入力ペイロード(JSON、XML)が空になっている。
  • ポリシーに渡された入力(JSON、XML など)が無効か、不正な形式になっている。
steps.extractvariables.ImmutableVariable 500 ポリシーで使用されている変数は不変です。ポリシーでこの変数を設定できませんでした。 なし
steps.extractvariables.InvalidJSONPath 500 このエラーは、ポリシーの JSONPath 要素で無効な JSON パスが使用されている場合に発生します。たとえば、JSON ペイロードにオブジェクト Name がない場合、ポリシー内のパスとして Name を指定すると、このエラーが発生します。
steps.extractvariables.JsonPathParsingFailure 500 このエラーは、ポリシーが JSON パスを解析できず、Source 要素で指定されたフロー変数からデータを抽出できない場合に発生します。これは通常、Source 要素で指定されたフロー変数が現在のフローに存在しない場合に発生します。
steps.extractvariables.SetVariableFailed 500 このエラーは、ポリシーが変数に値を設定できなかった場合に発生します。このエラーは通常、名前が同じ単語で始まる複数の変数に、ネストされたドット区切り形式の値を割り当てようとすると発生します。
steps.extractvariables.SourceMessageNotAvailable 500 このエラーは、ポリシーの Source 要素で指定された message 変数が、次のいずれかである場合に発生します。
  • 範囲外(ポリシーが実行されている特定のフローで使用できない)
  • 解決不能(未定義)
steps.extractvariables.UnableToCast 500 このエラーは、ポリシーが抽出された値を変数にキャストできなかった場合に発生します。これは通常、あるデータ型の値を別のデータ型の変数に設定しようとすると発生します。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
NothingToExtract ポリシーに URIPathQueryParamHeaderFormParamXMLPayloadJSONPayload のいずれの要素も含まれていない場合、抽出するものがないため、API プロキシのデプロイに失敗します。
NONEmptyPrefixMappedToEmptyURI このエラーは、ポリシーで XMLPayload 要素の下の Namespace 要素に接頭辞が定義されていても URI が定義されていない場合に発生します。
DuplicatePrefix このエラーは、ポリシーで、XMLPayload 要素の下の Namespace 要素で同じ接頭辞が複数回定義されている場合に発生します。
NoXPathsToEvaluate ポリシーの XMLPayload 要素内に XPath 要素がない場合、API プロキシのデプロイがこのエラーで失敗します。
EmptyXPathExpression ポリシーの XMLPayload 要素内に空の XPath 式があると、API プロキシのデプロイが失敗します。
NoJSONPathsToEvaluate ポリシーの JSONPayload 要素内に JSONPath 要素がない場合、API プロキシのデプロイがこのエラーで失敗します。
EmptyJSONPathExpression ポリシーの XMLPayload 要素内に空の XPath 式があると、API プロキシのデプロイが失敗します。
MissingName ポリシーの QueryParamHeaderFormParamVariable などのポリシー要素のいずれかに、必要な name 属性が含まれていない場合、API プロキシのデプロイが失敗します。
PatternWithoutVariable ポリシーの Pattern 要素内に変数が指定されていない場合、API プロキシのデプロイが失敗します。Pattern 要素には、抽出されたデータを格納するための変数の名前が必要です。
CannotBeConvertedToNodeset ポリシーに、Variable 型が nodeset として定義されている XPath 式があるが、式を nodeset に変換できない場合、API プロキシのデプロイが失敗します。
JSONPathCompilationFailed ポリシーが指定の JSON パスをコンパイルできませんでした。 なし
InstantiationFailed ポリシーをインスタンス化できませんでした。 なし
XPathCompilationFailed XPath 要素で使用される接頭辞や値がポリシーで宣言された名前空間の一部でない場合、API プロキシのデプロイが失敗します。
InvalidPattern Pattern 要素の定義が、ポリシー内の URIPathQueryParamHeaderFormParamXMLPayloadJSONPayload などの要素のいずれかで無効である場合、API プロキシのデプロイが失敗します。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name = "SourceMessageNotAvailable"
extractvariables.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 extractvariables.EV-ParseJsonResponse.failed = true

エラー レスポンスの例

{
   "fault":{
      "detail":{
         "errorcode":"steps.extractvariables.SourceMessageNotAvailable"
      },
      "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse"
   }
}

障害ルールの例

<FaultRule name="Extract Variable Faults">
    <Step>
        <Name>AM-CustomErrorMessage</Name>
        <Condition>(fault.name = "SourceMessageNotAvailable") </Condition>
    </Step>
    <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition>
</FaultRule>

GenerateJWS ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 発生条件
steps.jws.GenerationFailed 401 ポリシーで JWS を生成できなかった場合。
steps.jws.InsufficientKeyLength 401 HS256 アルゴリズムの鍵が 32 バイト未満の場合。
steps.jws.InvalidClaim 401 クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。
steps.jws.InvalidCurve 401 鍵で指定された曲線が、楕円曲線アルゴリズムでは無効な場合。
steps.jws.InvalidJsonFormat 401 JWS ヘッダーで無効な JSON が検出された場合。
steps.jws.InvalidPayload 401 JWS ペイロードが無効な場合。
steps.jws.InvalidSignature 401 <DetachedContent> が省略され、JWS に分離されたコンテンツ ペイロードがある場合。
steps.jws.KeyIdMissing 401 Verify ポリシーが公開鍵のソースとして JWKS を使用しているが、署名付き JWS のヘッダーに kid プロパティが含まれてない場合。
steps.jws.KeyParsingFailed 401 指定された鍵情報で公開鍵を解析できない場合。
steps.jws.MissingPayload 401 JWS ペイロードが欠落している場合。
steps.jws.NoAlgorithmFoundInHeader 401 JWS がアルゴリズム ヘッダーを省略すると発生します。
steps.jws.SigningFailed 401 GenerateJWS で、HS384 または HS512 アルゴリズムの鍵が最小サイズより小さい場合。
steps.jws.UnknownException 401 不明な例外が発生した場合。
steps.jws.WrongKeyType 401 鍵のタイプが正しくない場合。たとえば、楕円曲線アルゴリズムで RSA 鍵を指定した場合や、RSA アルゴリズムで曲線鍵を指定した場合など。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 発生条件
InvalidAlgorithm 有効な値: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

発生の可能性があるその他のデプロイエラー。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "TokenExpired"
JWS.failed 障害の場合は、すべての JWS ポリシーで同じ変数が設定されます。 jws.JWS-Policy.failed = true

エラー レスポンスの例

ベスト プラクティスとして、エラー処理でエラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。

障害ルールの例

<FaultRules>
    <FaultRule name="JWS Policy Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "TokenExpired")</Condition>
        </Step>
        <Condition>JWS.failed=true</Condition>
    </FaultRule>
</FaultRules>

GenerateJWT ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 発生条件
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 検証ポリシーに複数のアルゴリズムがある場合。
steps.jwt.AlgorithmMismatch 401 Generate ポリシーで指定されたアルゴリズムが、Verify ポリシーで想定されているアルゴリズムと一致しない場合。指定されたアルゴリズムが一致している必要があります。
steps.jwt.EncryptionFailed 401 暗号化された JWT の作成が特定の理由で失敗した場合
steps.jwt.FailedToDecode 401 ポリシーで JWT をデコードできなかった場合。JWT が破損している可能性があります。
steps.jwt.GenerationFailed 401 ポリシーで JWT を生成できなかった場合。
steps.jwt.InsufficientKeyLength 401 HS256 アルゴリズムで鍵が 32 バイト未満の場合、HS386 アルゴリズムで鍵が 48 バイト未満の場合、HS512 アルゴリズムで鍵が 64 バイト未満の場合。
steps.jwt.InvalidClaim 401 クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。
steps.jwt.InvalidConfiguration 401 <Algorithm> 要素と <Algorithms> 要素の両方が存在する場合。
steps.jwt.InvalidCurve 401 鍵で指定された曲線が、楕円曲線アルゴリズムでは無効な場合。
steps.jwt.InvalidJsonFormat 401 ヘッダーまたはペイロードで無効な JSON が検出された場合。
steps.jwt.InvalidPasswordKey 401 指定した鍵が要件を満たしていない場合。
steps.jwt.InvalidPrivateKey 401 指定した鍵が要件を満たしていない場合。
steps.jwt.InvalidPublicKey 401 指定した鍵が要件を満たしていない場合。
steps.jwt.InvalidSecretKey 401 指定した鍵が要件を満たしていない場合。
steps.jwt.InvalidToken 401 JWT 署名の検証で不合格だった場合。
steps.jwt.JwtAudienceMismatch 401 トークンの検証でオーディエンス クレームが不合格だった場合。
steps.jwt.JwtIssuerMismatch 401 トークンの検証で発行元クレームが不合格だった場合。
steps.jwt.JwtSubjectMismatch 401 トークンの検証でサブジェクト クレームが不合格だった場合。
steps.jwt.KeyIdMissing 401 Verify ポリシーが公開鍵のソースとして JWKS を使用しているが、署名付き JWT のヘッダーに kid プロパティが含まれてない場合。
steps.jwt.KeyParsingFailed 401 指定された鍵情報で公開鍵を解析できない場合。
steps.jwt.NoAlgorithmFoundInHeader 401 JWT にアルゴリズム ヘッダーが含まれていない場合。
steps.jwt.NoMatchingPublicKey 401 Verify ポリシーが JWKS を公開鍵のソースとして使用するが、署名付き JWT の kid が JWKS にリストされていない場合。
steps.jwt.SigningFailed 401 GenerateJWT で、HS384 または HS512 アルゴリズムの鍵が最小サイズより小さい場合。
steps.jwt.TokenExpired 401 ポリシーが期限切れのトークンを検証しようとしている場合。
steps.jwt.TokenNotYetValid 401 トークンがまだ有効になっていない場合。
steps.jwt.UnhandledCriticalHeader 401 crit ヘッダーの Verify JWT ポリシーで見つかったヘッダーが KnownHeaders にリストされていない場合。
steps.jwt.UnknownException 401 不明な例外が発生した場合。
steps.jwt.WrongKeyType 401 鍵のタイプが正しくない場合。たとえば、楕円曲線アルゴリズムで RSA 鍵を指定した場合や、RSA アルゴリズムで曲線鍵を指定した場合など。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidNameForAdditionalClaim <AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームの型が登録済みの名前(kidisssubaudiatexpnbfjti)のいずれかである場合、デプロイが失敗します。
InvalidTypeForAdditionalClaim <AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームが stringnumberbooleanmap 型でない場合、デプロイが失敗します。
MissingNameForAdditionalClaim <AdditionalClaims> 要素の子要素 <Claim> でクレームの名前が指定されていない場合、デプロイが失敗します。
InvalidNameForAdditionalHeader このエラーは、<AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームの名前が alg または typ の場合に発生します。
InvalidTypeForAdditionalHeader <AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームの型が stringnumberbooleanmap 型でない場合、デプロイが失敗します。
InvalidValueOfArrayAttribute このエラーは、<AdditionalClaims> 要素の子要素 <Claim> 内の配列属性の値が true または false に設定されていない場合に発生します。
InvalidConfigurationForActionAndAlgorithm <PrivateKey> 要素が HS ファミリー アルゴリズムで使用されている場合、または <SecretKey> 要素が RSA ファミリー アルゴリズムで使用されている場合、デプロイが失敗します。
InvalidValueForElement <Algorithm> 要素に指定された値がサポートされていない場合、デプロイが失敗します。
MissingConfigurationElement このエラーは、<PrivateKey> 要素が RSA ファミリー アルゴリズムで使用されていない場合や、<SecretKey> 要素が HS ファミリー アルゴリズムで使用されていない場合に発生します。
InvalidKeyConfiguration 子要素 <Value><PrivateKey> 要素または <SecretKey> 要素で定義されていない場合、デプロイが失敗します。
EmptyElementForKeyConfiguration <PrivateKey> 要素または <SecretKey> 要素の子要素 <Value> の ref 属性が空か、指定されていない場合、デプロイが失敗します。
InvalidVariableNameForSecret このエラーは、<PrivateKey> 要素や <SecretKey> 要素の子要素 <Value> の ref 属性で指定されたフロー変数名に、非公開の接頭辞 (private.) が含まれていない場合に発生します。
InvalidSecretInConfig このエラーは、<PrivateKey> 要素または <SecretKey> 要素の子要素 <Value> に非公開の接頭辞 (private.) が含まれていない場合に発生します。
InvalidTimeFormat <NotBefore> 要素に指定された値がサポートされている形式でない場合、デプロイは失敗します。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "InvalidToken"
JWT.failed 障害の場合、すべての JWT ポリシーで同じ変数が設定されます。 JWT.failed = true

エラー レスポンスの例

JWT ポリシーの障害コード

ベスト プラクティスとして、エラー処理では、エラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。

障害ルールの例

    <FaultRules>
        <FaultRule name="JWT Policy Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "InvalidToken")</Condition>
            </Step>
            <Condition>JWT.failed=true</Condition>
        </FaultRule>
    </FaultRules>
    

JavaCallout ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.javacallout.ExecutionError 500 JavaCallout policy の実行中に Java コードが例外を出力するか null を返す場合に発生します。

デプロイエラー

これらのエラーは、ポリシーを含むプロキシがデプロイされているときに発生することがあります。

エラー名 障害文字列 HTTP ステータス 発生条件
ResourceDoesNotExist Resource with name [name] and type [type] does not exist 該当なし <ResourceURL> 要素で指定されたファイルが存在しません。
JavaCalloutInstantiationFailed Failed to instantiate the JavaCallout Class [classname] 該当なし <ClassName> 要素で指定されたクラスファイルが jar 内にありません。
IncompatibleJavaVersion Failed to load java class [classname] definition due to - [reason] 該当なし 障害文字列をご覧ください。サポートされる Java のバージョンは、Oracle JDK 7/8 と OpenJDK 7/8 です。
JavaClassNotFoundInJavaResource Failed to find the ClassName in java resource [jar_name] - [class_name] 該当なし 障害文字列をご覧ください。
JavaClassDefinitionNotFound Failed to load java class [class_name] definition due to - [reason] 該当なし 障害文字列をご覧ください。
NoAppropriateConstructor No appropriate constructor found in JavaCallout class [class_name] 該当なし 障害文字列をご覧ください。
NoResourceForURL Could not locate a resource with URL [string] 該当なし 障害文字列をご覧ください。

障害変数

このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "ExecutionError"
javacallout.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 javacallout.JC-GetUserData.failed = true

エラー レスポンスの例

{  
   "fault":{  
      "faultstring":"Failed to execute JavaCallout. [policy_name]",
      "detail":{  
         "errorcode":"javacallout.ExecutionError"
      }
   }
}

障害ルールの例

<FaultRule name="JavaCalloutFailed">
    <Step>
        <Name>AM-JavaCalloutError</Name>
    </Step>
    <Condition>(fault.name Matches "ExecutionError") </Condition>
</FaultRule>

JavaScript ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、および Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.javascript.ScriptExecutionFailed 500 JavaScript ポリシーは、さまざまな種類の ScriptExecutionFailed エラーをスローできます。よくあるエラーとしては、RangeErrorReferenceErrorSyntaxErrorTypeErrorURIError などがあります。
steps.javascript.ScriptExecutionFailedLineNumber 500 JavaScript コードでエラーが発生しました。詳しくは、障害文字列をご覧ください。 なし
steps.javascript.ScriptSecurityError 500 JavaScript の実行時にセキュリティ エラーが発生しました。詳しくは、障害文字列をご覧ください。 なし

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidResourceUrlFormat JavaScript ポリシーの <ResourceURL> または <IncludeURL> 要素で指定されたリソース URL の形式が無効な場合、API プロキシのデプロイに失敗します。
InvalidResourceUrlReference <ResourceURL> または <IncludeURL> 要素が存在しない JavaScript ファイルを参照する場合、API プロキシのデプロイに失敗します。参照先のソースファイルが API プロキシ、環境、組織レベルのいずれかに存在している必要があります。
WrongResourceType このエラーは、デプロイ中に JavaScript ポリシーの <ResourceURL> 要素または <IncludeURL> 要素が jscJavaScript ファイル)以外のリソースタイプを参照している場合に発生します。
NoResourceURLOrSource <ResourceURL> 要素が宣言されていない場合、またはこの要素内にリソース URL が定義されていない場合、JavaScript ポリシーのデプロイがこのエラーで失敗する可能性があります。<ResourceURL> 要素は必須の要素です。また、<IncludeURL> 要素が宣言されていて、この要素内にリソース URL が定義されていない場合にも発生することがあります。<IncludeURL> 要素は省略可能ですが、宣言した場合は、リソース URL を <IncludeURL> 要素内に指定する必要があります。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "ScriptExecutionFailed"
javascript.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 javascript.JavaScript-1.failed = true

エラー レスポンスの例

{
  "fault": {
    "faultstring": "Execution of SetResponse failed with error: Javascript runtime error: "ReferenceError: "status" is not defined. (setresponse.js:6)\"",
    "detail": {
      "errorcode": "steps.javascript.ScriptExecutionFailed"
    }
  }
}

障害ルールの例

<FaultRule name="JavaScript Policy Faults">
    <Step>
        <Name>AM-CustomErrorResponse</Name>
        <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition>
    </Step>
    <Condition>(javascript.JavaScript-1.failed = true) </Condition>
</FaultRule>

JSONThreatProtection ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.jsonthreatprotection.ExecutionFailed 500 JSONThreatProtection ポリシーは、さまざまな種類の ExecutionFailed エラーをスローできます。エラーのほとんどは、ポリシーで設定された特定のしきい値を超えた場合に発生します。これらのエラーには、オブジェクト エントリ名の長さオブジェクト エントリ数配列要素数コンテナの深さ文字列値の長さなどがあります。このエラーは、ペイロードに無効な JSON オブジェクトが含まれている場合にも発生します。
steps.jsonthreatprotection.SourceUnavailable 500 このエラーは、<Source> 要素で指定された メッセージ変数が次のいずれかである場合に発生します。
  • 範囲外(ポリシーが実行されている特定のフローで使用できない)
  • 有効な値(requestresponsemessage)のいずれでもない
steps.jsonthreatprotection.NonMessageVariable 500 このエラーは、<Source> 要素がメッセージ型以外の変数に設定されている場合に発生します。

デプロイエラー

なし。

障害変数

このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "SourceUnavailable"
jsonattack.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 jsonattack.JTP-SecureRequest.failed = true

エラー レスポンスの例

{
  "fault": {
    "faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2",
    "detail": {
      "errorcode": "steps.jsonthreatprotection.ExecutionFailed"
    }
  }
}

障害ルールの例

<FaultRule name="JSONThreatProtection Policy Faults">
    <Step>
        <Name>AM-CustomErrorResponse</Name>
        <Condition>(fault.name Matches "ExecutionFailed") </Condition>
    </Step>
    <Condition>(jsonattack.JPT-SecureRequest.failed = true) </Condition>
</FaultRule>

JSONThreatProtection ポリシータイプでは、次のエラーコードを定義します。

JSONtoXML ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.jsontoxml.ExecutionFailed 500 入力ペイロード(JSON)が空か、JSON to XML ポリシーに渡された入力(JSON)が無効または不正です。
steps.jsontoxml.InCompatibleTypes 500 このエラーは、<Source> 要素で定義された変数の型と、<OutputVariable> 要素で定義された変数の型が異なる場合に発生します。<Source> 要素に含まれる変数の型と <OutputVariable> 要素に含まれる変数の型は一致している必要があります。有効な型は messagestring です。
steps.jsontoxml.InvalidSourceType 500 このエラーは、<Source> 要素の定義に使用される変数の型が無効な場合に発生します。有効な変数の型は messagestring です。
steps.jsontoxml.OutputVariableIsNotAvailable 500 このエラーは、JSON to XML ポリシーの <Source> 要素で指定された変数が文字列型であり、<OutputVariable> 要素が定義されていない場合に発生します。<Source> 要素で定義された変数が文字列型の場合、<OutputVariable> 要素は必須です。
steps.jsontoxml.SourceUnavailable 500 このエラーは、JSON to XML ポリシーの <Source> 要素で指定された message 変数が、次のいずれかである場合に発生します。
  • 範囲外(ポリシーが実行されている特定のフローで使用できない)
  • 解決不能(未定義)

デプロイエラー

なし。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "SourceUnavailable"
jsontoxml.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 jsontoxml.JSON-to-XML-1.failed = true

エラー レスポンスの例

{
  "fault": {
    "faultstring": "JSONToXML[JSON-to-XML-1]: Source xyz is not available",
    "detail": {
      "errorcode": "steps.json2xml.SourceUnavailable"
    }
  }
}

障害ルールの例

<FaultRule name="JSON To XML Faults">
    <Step>
        <Name>AM-SourceUnavailableMessage</Name>
        <Condition>(fault.name Matches "SourceUnavailable") </Condition>
    </Step>
    <Step>
        <Name>AM-BadJSON</Name>
        <Condition>(fault.name = "ExecutionFailed")</Condition>
    </Step>
    <Condition>(jsontoxml.JSON-to-XML-1.failed = true) </Condition>
</FaultRule>

KeyValueMapOperations ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.keyvaluemapoperations.UnsupportedOperationException 500

このエラーは、KeyValueMapOperations ポリシーで mapIdentifier 属性が空の文字列に設定されている場合に発生します。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidIndex KeyValueMapOperations ポリシーの <Get> 要素で指定された index 属性がゼロまたは負の数である場合、API プロキシのデプロイが失敗します。インデックスは 1 から始まるため、ゼロまたは負の整数のインデックスは無効と見なされます。
KeyIsMissing このエラーは、<Key> 要素が完全に欠落しているか、KeyValueMapOperations ポリシーの <InitialEntries> 要素の <Entry> の下の <Key> 要素に <Parameter> 要素がない場合に発生します。
ValueIsMissing このエラーは、KeyValueMapOperations ポリシーの <InitialEntries> 要素の <Entry> 要素の下に <Value> 要素がない場合に発生します。

MessageLogging ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因
steps.messagelogging.StepDefinitionExecutionFailed 500 障害文字列をご覧ください。
steps.messagelogging.InvalidGoogleCloudLogName 500 このエラーは、LogName が projects/{project}/logs/{logid} の有効な形式と評価されない場合にスローされます。
steps.messagelogging.InvalidJsonMessage 500 このエラーは、contentType 属性値が application/json として選択されているが、実際のメッセージ値が有効な JSON 文字列でない場合にスローされます。
steps.messagelogging.TooManyPendingLoggingRequest 500 このエラーは、Cloud Logging に書き込まれていない保留中のリクエストが 2,500 件を超えるとスローされます。2,500 件の上限は、Apigee ランタイム Pod ごとに適用されます。たとえば、トラフィックが Apigee ランタイム Pod の 2 つのインスタンスに分散している場合、実際の上限は 5,000 リクエストです。
-

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidProtocol <Protocol> 要素内で指定されたプロトコルが有効でない場合、MessageLogging ポリシーのデプロイがこのエラーで失敗することがあります。有効なプロトコルは TCP と UDP です。TLS / SSL 経由で Syslog メッセージを送信する場合は、TCP のみがサポートされます。
InvalidPort <Port> 要素内でポート番号が指定されていないか、有効でない場合、MessageLogging ポリシーのデプロイがこのエラーで失敗する場合があります。ポート番号は 0 より大きい整数である必要があります。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "StepDefinitionExecutionFailed"
messagelogging.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 messagelogging.ML-LogMessages.failed = true

エラー レスポンスの例

{  
   "fault":{
      "detail":{
         "errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
      },
      "faultstring":"Execution failed"
   }
}

障害ルールの例

<FaultRule name="MessageLogging">
    <Step>
        <Name>ML-LogMessages</Name>
        <Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
    </Step>
    <Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>

OASValidation ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因
steps.oasvalidation.Failed 400 リクエスト メッセージの本文が、指定された OpenAPI 仕様に対して検証できません。
steps.oasvalidation.Failed 500 レスポンス メッセージの本文が、指定された OpenAPI 仕様に対して検証できません。
steps.oasvalidation.SourceMessageNotAvailable 500

ポリシーの <Source> 要素で指定された変数が範囲外であるか、解決できません。

steps.oasvalidation.NonMessageVariable 500

<Source> 要素が、message 型以外の変数に設定されています。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因
ResourceDoesNotExist <OASResource> 要素で参照されている OpenAPI 仕様が存在しません。
ResourceCompileFailed デプロイに含まれている OpenAPI 仕様に、コンパイルを妨げるエラーが存在します。これは通常、仕様が正しい形式の OpenAPI 仕様 3.0 ではないことを示しています。
BadResourceURL <OASResource> 要素で参照されている OpenAPI 仕様が処理できません。これは、ファイルが JSON または YAML ファイルでない場合、またはファイルの URL が正しく指定されていない場合に発生することがあります。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.category 障害のカテゴリ。ポリシーでリクエストが拒否された場合、常に Step が保持されます。 fault.category = "Step"
fault.name 障害の名前は、上記のランタイム エラーの表に記載されています。障害名は、障害コードの最後の部分です。 fault.name Matches "ResourceDoesNotExist"
fault.reason 障害の理由。障害の理由です。人が読める形式の文字列で示されます。 OASValidation OAS-1 with resource "oas://my-spec1.yaml": failed with reason: "[ERROR - POST operation not allowed on path '/persons/13'.: []]"
fault.subcategory 障害のサブカテゴリ。ポリシーでリクエストが拒否された場合、常に OASValidationFailure が保持されます。 fault.subcategory = "OASValidationFailure"
OASValidation.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 OASValidation.myoaspolicy.failed = true

PopulateCache ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 発生条件
policies.populatecache.EntryCannotBeCached 500 エントリをキャッシュできない場合。キャッシュされるメッセージ オブジェクトが、シリアル化可能なクラスのインスタンスではない場合。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidCacheResourceReference このエラーは、API プロキシがデプロイされている環境に存在しない名前が PopulateCache ポリシーの <CacheResource> 要素に設定されている場合に発生します。
CacheNotFound <CacheResource> 要素で指定されたキャッシュが存在しません。

障害変数

このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 populatecache.POP-CACHE-1.failed = true

エラー レスポンスの例

{
  "fault": {
    "faultstring": "[entry] can not be cached. Only serializable entries are cached.",
    "detail": {
      "errorcode": "steps.populatecache.EntryCannotBeCached"
    }
  }
}

障害ルールの例

<FaultRule name="Populate Cache Fault">
    <Step>
        <Name>AM-EntryCannotBeCached</Name>
        <Condition>(fault.name Matches "EntryCannotBeCached") </Condition>
    </Step>
    <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition>
</FaultRule>

LookupCache ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに設定されるエラー メッセージとフロー変数について説明します。これは、プロキシの障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

エラーコードの接頭辞

なし

ランタイム エラー

このポリシーはランタイム エラーをスローしません。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidCacheResourceReference このエラーは、API プロキシがデプロイされている環境に存在しない名前が <CacheResource> 要素に設定されている場合に発生します。
InvalidTimeout <CacheLookupTimeoutInSeconds> 要素が負の数に設定されている場合、API プロキシのデプロイは失敗します。
CacheNotFound このエラーは、エラー メッセージに記述されているキャッシュが、特定の Message Processor コンポーネント上に作成されていない場合に発生します。

障害変数

なし

エラー レスポンスの例

なし

InvalidateCache ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに設定されるエラー メッセージとフロー変数について説明します。これは、プロキシの障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

エラーコードの接頭辞

なし

ランタイム エラー

このポリシーはランタイム エラーをスローしません。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidCacheResourceReference このエラーは、API プロキシがデプロイされている環境に存在しない名前が InvalidateCache ポリシーの <CacheResource> 要素に設定されている場合に発生します。
CacheNotFound このエラーは、エラー メッセージに記述されているキャッシュが、特定の Message Processor コンポーネント上に作成されていない場合に発生します。

障害変数

なし

エラー レスポンスの例

なし

ResponseCache ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに設定されるエラー メッセージとフロー変数について説明します。これは、プロキシの障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

エラーコードの接頭辞

なし

ランタイム エラー

このポリシーはランタイム エラーをスローしません。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidTimeout ResponseCache ポリシーの <CacheLookupTimeoutInSeconds> 要素が負の数に設定されている場合、API プロキシのデプロイが失敗します。
InvalidCacheResourceReference このエラーは、API プロキシがデプロイされている環境に存在しない名前が ResponseCache ポリシーの <CacheResource> 要素に設定されている場合に発生します。
ResponseCacheStepAttachmentNotAllowedReq このエラーは、同じ ResponseCache ポリシーが API プロキシの任意のフロー内の複数のリクエストパスに接続されている場合に発生します。
ResponseCacheStepAttachmentNotAllowedResp このエラーは、同じ ResponseCache ポリシーが API プロキシの任意のフロー内の複数のレスポンスパスに接続されている場合に発生します。
InvalidMessagePatternForErrorCode このエラーは、ResponseCache ポリシーの <SkipCacheLookup> 要素と <SkipCachePopulation> 要素のいずれかに無効な条件が含まれている場合に発生します。
CacheNotFound このエラーは、エラー メッセージに記述されているキャッシュが、特定の Message Processor コンポーネント上に作成されていない場合に発生します。

障害変数

なし

エラー レスポンスの例

なし

OAuthV2 ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 オペレーションによるスロー
steps.oauth.v2.access_token_expired 401 アクセス トークンの期限が切れています。

VerifyAccessToken
InvalidateToken

steps.oauth.v2.access_token_not_approved 401 アクセス トークンは取り消されています。 VerifyAccessToken
steps.oauth.v2.apiresource_doesnot_exist 401 リクエストされたリソースが、アクセス トークンに関連付けられた API プロダクトに存在していません。 VerifyAccessToken
steps.oauth.v2.FailedToResolveAccessToken 500 ポリシーでは、<AccessToken> 要素で指定された変数にアクセス トークンがあることを想定していますが、この変数を解決できませんでした。 GenerateAccessToken
steps.oauth.v2.FailedToResolveAuthorizationCode 500 ポリシーでは、<Code> 要素で指定された変数に認証コードがあることを想定していますが、この変数を解決できませんでした。 GenerateAuthorizationCode
steps.oauth.v2.FailedToResolveClientId 500 ポリシーでは、<ClientId> 要素で指定された変数にクライアント ID があることを想定していますが、この変数を解決できませんでした。 GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.FailedToResolveRefreshToken 500 ポリシーでは、<RefreshToken> 要素で指定された変数に更新トークンがあることを想定していますが、この変数を解決できませんでした。 RefreshAccessToken
steps.oauth.v2.FailedToResolveToken 500 ポリシーでは、<Tokens> 要素で指定された変数にトークンがあることを想定していますが、この変数を解決できませんでした。

ValidateToken
InvalidateToken

steps.oauth.v2.InsufficientScope 403 リクエストで提供されたアクセス トークンのスコープが、アクセス トークン検証ポリシーに指定されているスコープと一致しません。スコープの詳細については、OAuth2 スコープの操作をご覧ください。 VerifyAccessToken
steps.oauth.v2.invalid_access_token 401 クライアントから送信されたアクセス トークンが無効です。 VerifyAccessToken
steps.oauth.v2.invalid_client 401

このエラー名は、ポリシーの <GenerateResponse> プロパティが true に設定され、リクエストで送信されたクライアント ID が無効な場合に返されます。使用しているプロキシに関連付けられたデベロッパー アプリに正しいクライアント キーとシークレットの値を使用していることを確認してください。通常、これらの値は Base64 エンコードの Basic Authorization ヘッダーとして送信されます。

GenerateAccessToken
RefreshAccessToken
steps.oauth.v2.invalid_request 400 このエラー名は、複数の異なる種類のエラーに使用されます。通常は、リクエストで送信されたパラメータが欠落しているか、正しくない場合に使用されます。<GenerateResponse>false に設定されている場合、後述の障害変数を使用してエラーの詳細(障害名、原因など)を取得してください。 GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.InvalidAccessToken 401 認証ヘッダーに必須の単語 Bearer がありません。例: Authorization: Bearer your_access_token VerifyAccessToken
steps.oauth.v2.InvalidAPICallAsNo\
ApiProductMatchFound
401

現在実行中の API プロキシまたはオペレーションが、アクセス トークンに関連付けられたプロダクト内にありません。

ヒント: アクセス トークンに関連付けられたプロダクトが適切に構成されていることを確認してください。たとえば、リソースパスでワイルドカードを使用する場合は、ワイルドカードが正確に使用されていることを確認します。詳しくは、API プロダクトの管理をご覧ください。

このエラーの原因について詳しくは、Oauth2.0 Access Token Verification throws "Invalid API call as no apiproduct match found" error もご覧ください。

VerifyAccessToken
steps.oauth.v2.InvalidClientIdentifier 500

このエラー名は、ポリシーの <GenerateResponse> プロパティが false に設定され、リクエストで送信されたクライアント ID が無効な場合に返されます。使用しているプロキシに関連付けられたデベロッパー アプリに正しいクライアント キーとシークレットの値を使用していることを確認してください。通常、これらの値は Base64 エンコードの Basic Authorization ヘッダーとして送信されます。

GenerateAccessToken
RefreshAccessToken

steps.oauth.v2.InvalidParameter 500 ポリシーでは、アクセス トークンまたは認証コードのいずれかを指定する必要があります。両方は指定できません。 GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.InvalidTokenType 500 <Tokens>/<Token> 要素でトークンタイプ(たとえば refreshtoken)を指定する必要があります。クライアントが誤ったタイプを渡すと、このエラーがスローされます。 ValidateToken
InvalidateToken
steps.oauth.v2.MissingParameter 500 レスポンス タイプが token ですが、権限付与タイプが指定されていません。 GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.UnSupportedGrantType 500

クライアントで指定された権限付与タイプが、ポリシーでサポートされていません(<SupportedGrantTypes> 要素のリストにありません)。

GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken

JWT トークン固有のランタイム エラー

JWT 認証トークンのランタイム エラーコードと説明は、OAuth2 フローのコンテキストによって異なります。

JWT トークンの生成フローと更新フローのエラーコード

JWT トークンを生成または更新する OAuth2 フローの場合、エラー レスポンスは RFC6749 で指定されているエラー レスポンスに従います。詳しくは、セクション 5.2 エラー レスポンスをご覧ください。

トークン検証フローのエラーコード

次の表に示すエラーコードは、VerifyAccessToken オペレーションにのみ適用されます。

障害コード HTTP ステータス 原因 オペレーションによるスロー
oauth.v2.JWTSigningFailed 401 ポリシーで JWT に署名を設定できなかった場合。

GenerateJWTAccessToken

oauth.v2.InvalidValueForJWTAlgorithm 401 これは、JWT アクセス トークンにアルゴリズムが存在しない場合、または値がサポートされていない場合に発生します。

GenerateJWTAccessToken
VerifyJWTAccessToken

oauth.v2.InsufficientKeyLength 401 JWT の生成では、HS384 または HS512 アルゴリズムの鍵が最小サイズよりも小さい場合。

GenerateJWTAccessToken
VerifyJWTAccessToken

oauth.v2.JWTAlgorithmMismatch 401 Generate ポリシーで指定されたアルゴリズムが、Verify ポリシーで想定されているアルゴリズムと一致しない場合。指定されたアルゴリズムが一致している必要があります。

VerifyJWTAccessToken

oauth.v2.JWTDecodingFailed 401 ポリシーで JWT をデコードできなかった場合。JWT が破損している可能性があります。

VerifyJWTAccessToken

oauth.v2.MissingMandatoryClaimsInJWT 401 Jwt アクセス トークンに必要なクレームがない場合。

VerifyJWTAccessToken

oauth.v2.InvalidJWTSignature 401 これは、JWT アクセス トークンの署名が検証できなかったか、署名が無効である場合に発生します。

VerifyJWTAccessToken

oauth.v2.InvalidTypeInJWTHeader 401 JWT の型が at+Jwt でない場合に発生します。

VerifyJWTAccessToken

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因
InvalidValueForExpiresIn

<ExpiresIn> 要素の場合、有効な値は正の整数と -1 です。

InvalidValueForRefreshTokenExpiresIn <RefreshTokenExpiresIn> 要素の場合、有効な値は正の整数と -1 です。
InvalidGrantType <SupportedGrantTypes> 要素に無効な権限付与タイプが指定されています。有効な付与タイプのリストについては、ポリシー リファレンスをご覧ください。
ExpiresInNotApplicableForOperation <Operations> 要素に指定されたオペレーションで有効期限がサポートされていることを確認してください。たとえば、VerifyToken オペレーションでは有効期限はサポートされません。
RefreshTokenExpiresInNotApplicableForOperation <Operations> 要素に指定されたオペレーションで、更新トークンの有効期限がサポートされていることを確認してください。たとえば、VerifyToken オペレーションではサポートされていません。
GrantTypesNotApplicableForOperation <SupportedGrantTypes> に指定された付与タイプが、指定したオペレーションでサポートされていることを確認してください。
OperationRequired

<Operation> 要素を使用して、このポリシーのオペレーションを指定する必要があります。

InvalidOperation

<Operation> 要素を使用して、このポリシーで有効なオペレーションを指定する必要があります。

TokenValueRequired <Tokens> 要素にトークン <Token> 値を指定する必要があります。

JWT トークン固有のデプロイエラー

このデプロイエラーは、JWT トークン オペレーションを使用するポリシーに固有のエラーです。

エラー名 原因
InvalidValueForAlgorithm <Algorithm> 要素で指定されたアルゴリズムが、使用可能なアルゴリズムのリストに含まれていないか、存在しません。
MissingKeyConfiguration 必須の <SecretKey><PrivateKey><PublicKey> 要素がありません(どの要素がないかは、使用するアルゴリズムによって異なります)。
EmptyValueElementForKeyConfiguration 必須の子要素 <Value><PrivateKey><PublicKey>、または <SecretKey> 要素で定義されていません。
InvalidKeyConfiguration <PrivateKey> 要素が RSA ファミリー アルゴリズムで使用されていないか、<SecretKey> 要素が HS ファミリー アルゴリズムで使用されていません。
EmptyRefAttributeForKeyconfiguration <PrivateKey><PublicKey>、または <SecretKey> 要素の子要素 <Value>ref 属性が空です。
InvalidVariableNameForKey <PrivateKey><PublicKey>、または <SecretKey> 要素の子要素 <Value>ref 属性で指定されたフロー変数名に、private 接頭辞がありません。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name = "invalid_request"
oauthV2.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.GenerateAccesstoken.failed = true
oauthV2.policy_name.fault.name policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.GenerateAccesstoken.fault.name = invalid_request
oauthV2.policy_name.fault.cause policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.GenerateAccesstoken.cause = Required param : grant_type

エラー レスポンスの例

<GenerateResponse> 要素が true の場合、これらのレスポンスがクライアントに返されます。

<GenerateResponse>true の場合、ポリシーはトークンとコードを生成するオペレーションに対して、次の形式のエラーを返します。一覧については、OAuth HTTP エラー レスポンス リファレンスをご覧ください。

{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}

<GenerateResponse>true の場合、ポリシーは確認と検証のオペレーションに対して、次の形式のエラーを返します。一覧については、OAuth HTTP エラー レスポンス リファレンスをご覧ください。

{  
   {  
      "fault":{  
         "faultstring":"Invalid Access Token",
         "detail":{  
            "errorcode":"keymanagement.service.invalid_access_token"
         }
      }
   }

障害ルールの例

<FaultRule name="OAuthV2 Faults">
    <Step>
        <Name>AM-InvalidClientResponse</Name>
        <Condition>(fault.name = "invalid_client") OR (fault.name = "InvalidClientIdentifier")</Condition>
    </Step>
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

GetOAuthV2Info ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。以下のエラー名は、エラーが発生したときに fault.name 変数に割り当てられる文字列です。詳細については、以下の障害変数のセクションをご覧ください。

障害コード HTTP ステータス 原因
steps.oauth.v2.access_token_expired 500 ポリシーに送信されたアクセス トークンが期限切れになっています。
steps.oauth.v2.authorization_code_expired 500 ポリシーに送信された認証コードが期限切れになっています。
steps.oauth.v2.invalid_access_token 500 ポリシーに送信されたアクセス トークンが無効です。
steps.oauth.v2.invalid_client-invalid_client_id 500 ポリシーに送信されたクライアント ID が無効です。
steps.oauth.v2.invalid_refresh_token 500 ポリシーに送信された更新トークンが無効です。
steps.oauth.v2.invalid_request-authorization_code_invalid 500 ポリシーに送信された認証コードが無効です。
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 このエラーのトラブルシューティングについては、Oauth2.0 Access Token Verification throws "Invalid API call as no apiproduct match found" error をご覧ください。
steps.oauth.v2.refresh_token_expired 500 ポリシーに送信された更新トークンが期限切れになっています。

デプロイエラー

デプロイエラーについては、UI で報告されるメッセージを参照してください。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "IPDeniedAccess"
oauthV2.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.GetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id
oauthV2.policy_name.fault.cause policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.GetTokenInfo.cause = ClientID is Invalid

エラー レスポンスの例

{  
   "fault":{  
      "faultstring":"ClientId is Invalid",
      "detail":{  
         "errorcode":"keymanagement.service.invalid_client-invalid_client_id"
      }
   }
}

障害ルールの例

<FaultRule name="OAuthV2 Faults">
    <Step>
        <Name>AM-InvalidClientIdResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>

SetOAuthV2Info ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因
steps.oauth.v2.access_token_expired 500 ポリシーに送信されたアクセス トークンが期限切れになっています。
steps.oauth.v2.invalid_access_token 500 ポリシーに送信されたアクセス トークンが無効です。
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 このエラーのトラブルシューティングについては、Oauth2.0 Access Token Verification throws "Invalid API call as no apiproduct match found" error をご覧ください。

デプロイエラー

デプロイエラーについては、UI で報告されるメッセージを参照してください。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.SetTokenInfo.cause = Invalid Access Token

エラー レスポンスの例

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

障害ルールの例

<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

DeleteOAuthV2Info ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因
steps.oauth.v2.invalid_access_token 401 ポリシーに送信されたアクセス トークンが無効です。
steps.oauth.v2.invalid_request-authorization_code_invalid 401 ポリシーに送信された認証コードが無効です。
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 このエラーのトラブルシューティングについては、Oauth2.0 Access Token Verification throws "Invalid API call as no apiproduct match found" error をご覧ください。

デプロイエラー

デプロイエラーについては、UI で報告されるメッセージを参照してください。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.DeleteTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.DeleteTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.DeleteTokenInfo.cause = Invalid Access Token

エラー レスポンスの例

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

障害ルールの例

<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_access_token")</Condition>
</FaultRule>

PythonScript ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、および Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.script.ScriptEvaluationFailed 500 PythonScript ポリシーは、複数のタイプの ScriptExecutionFailed エラーをスローします。よくあるエラーとしては、NameErrorZeroDivisionError があります。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidResourceUrlFormat PythonScript ポリシーの <ResourceURL> または <IncludeURL> 要素で指定されたリソース URL の形式が無効な場合、API プロキシのデプロイが失敗します。
InvalidResourceUrlReference <ResourceURL> 要素または <IncludeURL> 要素が存在しない PythonScript ファイルを参照している場合、API プロキシのデプロイが失敗します。参照先のソースファイルが API プロキシ、環境、組織レベルのいずれかに存在している必要があります。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "ScriptExecutionFailed"
pythonscript.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 pythonscript.PythonScript-1.failed = true

エラー レスポンスの例

{
  "fault": {
    "faultstring": "Execution of SetResponse failed with error: Pythonscript runtime error: "ReferenceError: "status" is not defined.\"",
    "detail": {
      "errorcode": "steps.script.ScriptExecutionFailed"
    }
  }
}

障害ルールの例

<FaultRule name="PythonScript Policy Faults">
    <Step>
        <Name>AM-CustomErrorResponse</Name>
        <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition>
    </Step>
    <Condition>(pythonscript.PythonScript-1.failed = true) </Condition>
</FaultRule>

Quota ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
policies.ratelimit.FailedToResolveQuotaIntervalReference 500 <Interval> 要素が Quota ポリシー内で定義されていない場合に発生します。この要素は必須であり、割り当てに適用される間隔を指定するために使用されます。間隔は、<TimeUnit> 要素で定義された分、時、日、週、月で指定できます。
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference 500 <TimeUnit> 要素が Quota ポリシー内で定義されていない場合に発生します。この要素は必須であり、割り当てに適用される時間単位を指定するために使用されます。間隔は、分、時間、日、週、月で指定できます。
policies.ratelimit.InvalidMessageWeight 500 フロー変数で <MessageWeight> 要素に無効な値(整数以外の値)が指定された場合に発生します。
policies.ratelimit.QuotaViolation 500 割り当ての上限を超えました。 なし

デプロイエラー

エラー名 原因 修正
InvalidQuotaInterval <Interval> 要素に指定された割り当て間隔が整数でない場合、API プロキシのデプロイが失敗します。たとえば、<Interval> 要素で指定された割り当て間隔が 0.1 の場合、API プロキシのデプロイが失敗します。
InvalidQuotaTimeUnit <TimeUnit> 要素で指定された時間単位がサポートされていない場合、API プロキシのデプロイが失敗します。サポートされている時間単位は minutehourdayweekmonth です。
InvalidQuotaType <Quota> 要素の type 属性で指定された割り当てのタイプが無効な場合、API プロキシのデプロイが失敗します。サポートされている割り当てのタイプは、defaultcalendarflexirollingwindow です。
InvalidStartTime <StartTime> 要素で指定された時間の形式が無効な場合、API プロキシのデプロイが失敗します。有効な形式は yyyy-MM-dd HH:mm:ss です。これは ISO 8601 の日付と時刻の形式です。たとえば、<StartTime> 要素で指定された時間が 7-16-2017 12:00:00 の場合、API プロキシのデプロイが失敗します。
StartTimeNotSupported 割り当てのタイプが calendar 以外の <StartTime> 要素が指定されている場合、API プロキシのデプロイが失敗します。<StartTime> 要素は、calendar 割り当てタイプでのみサポートされています。たとえば、<Quota> 要素の type 属性が flexi または rolling window に設定されている場合、API プロキシのデプロイが失敗します。
InvalidTimeUnitForDistributedQuota <Distributed> 要素が true に設定され、<TimeUnit> 要素が second に設定されている場合、API プロキシのデプロイが失敗します。分散割り当てで時間単位 second は無効です。
InvalidSynchronizeIntervalForAsyncConfiguration Quota ポリシーの <AsynchronousConfiguration> 要素内の <SyncIntervalInSeconds> 要素に指定された値が 0 未満の場合、API プロキシのデプロイが失敗します。
InvalidAsynchronizeConfigurationForSynchronousQuota Quota ポリシーで <AsynchronousConfiguration> 要素の値が true に設定されていて、<AsynchronousConfiguration> 要素を使用して非同期構成が定義されている場合、API プロキシのデプロイが失敗します。

障害変数

このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "QuotaViolation"
ratelimit.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 ratelimit.QT-QuotaPolicy.failed = true

エラー レスポンスの例

{  
   "fault":{  
      "detail":{  
         "errorcode":"policies.ratelimit.QuotaViolation"
      },
      "faultstring":"Rate limit quota violation. Quota limit  exceeded. Identifier : _default"
   }
}

障害ルールの例

<FaultRules>
    <FaultRule name="Quota Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "QuotaViolation") </Condition>
        </Step>
        <Condition>ratelimit.Quota-1.failed=true</Condition>
    </FaultRule>
</FaultRules>

ResetQuota ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
policies.resetquota.InvalidRLPolicy 500 ResetQuota ポリシーの <Quota> 要素で指定された Quota ポリシーは、API プロキシで定義されていないため、フロー中に使用できません。<Quota> 要素は必須です。この要素は、ResetQuota ポリシーを使用してカウンタを更新する必要があるターゲット Quota ポリシーを識別します。
policies.resetquota.FailedToResolveAllowCountRef なし ポリシーの <Allow> 要素の許可カウントを含む変数への参照を値に解決できません。この要素は必須であり、割り当てカウンタを減らす量を指定します。
policies.resetquota.FailedToResolveRLPolicy 500 <Quota> 要素の ref 属性によって参照される変数は解決できません。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
InvalidCount ResetQuota ポリシーの <Allow> 要素に指定されたカウント値が整数でない場合、API プロキシのデプロイは失敗します。

RaiseFault ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因
steps.raisefault.RaiseFault 500 障害文字列をご覧ください。

デプロイエラー

なし。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name = "RaiseFault"
raisefault.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 raisefault.RF-ThrowError.failed = true

エラー レスポンスの例

{
   "fault":{
      "detail":{
         "errorcode":"steps.raisefault.RaiseFault"
      },
      "faultstring":"Raising fault. Fault name: [name]"
   }
}

RegularExpressionProtection ポリシー

このセクションでは、このポリシーでエラーをトリガーしたときに返されるエラーコードとメッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。エラーをキャプチャして独自のカスタムエラーを発生させる場合は、ポリシールート要素で continueOnError="true" 属性を設定します。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

エラーコード メッセージ
ExecutionFailed Failed to execute the RegularExpressionProtection StepDefinition {0}. Reason: {1}
InstantiationFailed Failed to instantiate the RegularExpressionProtection StepDefinition {0}
NonMessageVariable Variable {0} does not resolve to a Message
SourceMessageNotAvailable {0} message is not available for RegularExpressionProtection StepDefinition {1}
ThreatDetected Regular Expression Threat Detected in {0}: regex: {1} input: {2}
VariableResolutionFailed Failed to resolve variable {0}

デプロイエラー

エラーコード メッセージ 修正
CannotBeConvertedToNodeset RegularExpressionProtection {0}: Result of xpath {1} cannot be converted to nodeset. Context {2}
DuplicatePrefix RegularExpressionProtection {0}: Duplicate prefix {1}
EmptyJSONPathExpression RegularExpressionProtection {0}: Empty JSONPath expression
EmptyXPathExpression RegularExpressionProtection {0}: Empty XPath expression
InvalidRegularExpression RegularExpressionProtection {0}: Invalid Regular Expression {1}, Context {2}
JSONPathCompilationFailed RegularExpressionProtection {0}: Failed to compile jsonpath {1}. Context {2}
NONEmptyPrefixMappedToEmptyURI RegularExpressionProtection {0}: Non-empty prefix {1} cannot be mapped to empty uri
NoPatternsToEnforce RegularExpressionProtection {0}: No patterns to enforce in {1}
NothingToEnforce RegularExpressionProtection {0}: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory
XPathCompilationFailed RegularExpressionProtection {0}: Failed to compile xpath {1}. Context {2}

障害変数

このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は、上記の表に示されている障害の名前です。 fault.name Matches "ThreatDetected"
regularexpressionprotection.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

SAMLAssertion ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

デプロイエラー

以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

エラー名 原因 修正
SourceNotConfigured ValidateSAMLAssertion ポリシーの <Source><XPath><Namespaces><Namespace> 要素のうち、1 つ以上が定義されていないか、空白になっています。
TrustStoreNotConfigured <TrustStore> 要素が空か、ValidateSAMLAssertion ポリシーで指定されていない場合、API プロキシのデプロイが失敗します。有効なトラストストアが必要です。
NullKeyStoreAlias 子要素 <Alias> が空か、GenerateSAMLAssertion ポリシーの <Keystore> 要素で指定されていない場合、API プロキシのデプロイが失敗します。有効なキーストア エイリアスが必要です。
NullKeyStore 子要素 <Name> が空か、GenerateSAMLAssertion ポリシーの <Keystore> 要素で指定されていない場合、API プロキシのデプロイが失敗します。有効なキーストア名が必要です。
NullIssuer <Issuer> 要素が空か、GenerateSAMLAssertion ポリシーで指定されていない場合、API プロキシのデプロイが失敗します。有効な <Issuer> の値が必要です。

障害変数

ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

変数 説明
fault.name="fault_name" fault_name は障害の名前です。障害名は、障害コードの最後の部分です。 fault.name = "InvalidMediaTpe"
GenerateSAMLAssertion.failed 検証 SAML assertion ポリシー構成の場合、エラーの接頭辞は ValidateSAMLAssertion になります。 GenerateSAMLAssertion.failed = true

エラー レスポンスの例

{
  "fault": {
    "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type",
    "detail": {
      "errorcode": "steps.saml.generate.InvalidMediaTpe"
    }
  }
}

障害ルールの例

<FaultRules>
    <FaultRule name="invalid_saml_rule">
        <Step>
            <Name>invalid-saml</Name>
        </Step>
        <Condition>(GenerateSAMLAssertion.failed = "true")</Condition>
    </FaultRule>
</FaultRules>

ServiceCallout ポリシー

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因 修正
steps.servicecallout.ExecutionFailed 500

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

  • ポリシーが不正な入力または無効な入力を処理するよう要求された場合。
  • バックエンド ターゲット サービスがエラー ステータスを返した場合(デフォルトでは 4xx または 5xx)。
steps.servicecallout.RequestVariableNotMessageType 500 ポリシーで指定された Request 変数のタイプが Message ではありません。たとえば、文字列または他のメッセージ以外のタイプの場合、このエラーが発生します。
steps.servicecallout.RequestVariableNotRequestMessageType 500 ポリシーで指定された Request 変数のタイプが RequestMessage ではありません。たとえば、Response タイプの場合、このエラーが発生します。
googletoken.EmptyIDTokenAudience 500

<GoogleIDToken> が有効になっていますが、useTargetUrl が false に設定されており、エラー時に <Audience> に直接または参照を介して値が提供されていません。

messaging.adaptors.http.filter.GoogleTokenGenerationFailure 500 このエラーは、API プロキシが <Authentication> 要素で構成されている場合に発生することがあります。次のような原因が考えられます。
  • プロキシを使用してデプロイされたサービス アカウントが次の状態になっている。
    • プロジェクトに存在しない
    • 無効になっている
    • (Apigee ハイブリッドのみ)apigee-runtime サービス アカウントに対する roles/iam.serviceAccountTokenCreator ロールが付与されていない。
  • apigee-runtime サービス アカウントのソース プロジェクトで IAMCredentials API が無効になっています。
  • <GoogleAccessToken> 要素が使用され、1 つ以上の無効なスコープが指定されています。入力ミスや空のスコープなどを探してください。
  • Apigee ハイブリッドの場合のみ、ランタイム コンテナのログで GoogleTokenGenerationFailure を検索して、問題のデバッグに役立つ詳細なエラー メッセージを見つけます。

    デプロイエラー

    以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

    エラー名 原因 修正
    URLMissing <HTTPTargetConnection> 内の <URL> 要素が見つからないか、空になっています。
    ConnectionInfoMissing このエラーは、ポリシーに <HTTPTargetConnection> 要素または <LocalTargetConnection> 要素がない場合に発生します。
    InvalidTimeoutValue このエラーは、<Timeout> の値が負の値またはゼロの場合に発生します。
    FAILED_PRECONDITION プロキシが <Authentication> タグで構成されている場合にサービス アカウントがないと、このエラーが発生します。

    例:

    Deployment of \"organizations/foo/apis/apiproxy/revisions/1\" requires a service
              account identity, but one was not provided with the request.
    PERMISSION_DENIED プロキシが <Authentication> タグを使用して構成されている場合に、サービス アカウントに権限の問題があると、このエラーが発生します。考えられる原因:
    • サービス アカウントが存在しない。
    • サービス アカウントが Apigee 組織と同じ Google Cloud プロジェクトに作成されていない。
    • デプロイ担当者に、サービス アカウントに対する iam.serviceAccounts.actAs 権限が付与されていない。詳細については、サービス アカウントの権限についてをご覧ください。

    障害変数

    ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

    変数 説明
    fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name = "RequestVariableNotMessageType"
    servicecallout.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 servicecallout.SC-GetUserData.failed = true

    エラー レスポンスの例

    {
       "fault":{
          "detail":{
             "errorcode":"steps.servicecallout.RequestVariableNotMessageType"
          },
          "faultstring":"ServiceCallout[ServiceCalloutGetMockResponse]:
                request variable data_str value is not of type Message"
       }
    }

    障害ルールの例

    <FaultRule name="RequestVariableNotMessageType">
        <Step>
            <Name>AM-RequestVariableNotMessageType</Name>
        </Step>
        <Condition>(fault.name = "RequestVariableNotMessageType")</Condition>
    </FaultRule>

    SOAPMessageValidation ポリシー

    このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

    ランタイム エラー

    このエラーは、ポリシーの実行時に発生することがあります。

    障害コード HTTP ステータス 原因 修正
    steps.messagevalidation.SourceMessageNotAvailable 500

    このエラーは、ポリシーの <Source> 要素で指定された変数が次のいずれかである場合に発生します。

    • 範囲外(ポリシーが実行されている特定のフローで使用できない)
    • または
    • 解決不能(未定義)
    steps.messagevalidation.NonMessageVariable 500

    このエラーは、SOAPMessageValidation ポリシーの <Source> 要素がメッセージ型以外の変数に設定されている場合に発生します。

    メッセージ型の変数は HTTP リクエストとレスポンス全体を表します。組み込みの Apigee フロー変数 requestresponsemessage はメッセージ型です。メッセージ変数の詳細については、変数リファレンスをご覧ください。

    steps.messagevalidation.Failed 500 このエラーは、SOAPMessageValidation ポリシーが、XSD スキーマまたは WSDL 定義に対する入力メッセージ ペイロードを検証できなかった場合に発生します。また、ペイロード メッセージ内の JSON または XML の形式が正しくない場合にも発生します。

    デプロイエラー

    以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

    エラー名 原因 修正
    InvalidResourceType SOAPMessageValidation ポリシーの <ResourceURL> 要素が、ポリシーでサポートされていないリソースタイプに設定されています。
    ResourceCompileFailed SOAPMessageValidation ポリシーの <ResourceURL> 要素で参照されているリソース スクリプトに、コンパイルを妨げるエラーが含まれています。
    RootElementNameUnspecified SOAPMessageValidation ポリシーの <Element> 要素にルート要素の名前が含まれていません。
    InvalidRootElementName SOAPMessageValidation ポリシーの <Element> 要素に、有効な要素の命名に関する XML ルールに準拠していないルート要素名が含まれています。

    SpikeArrest ポリシー

    このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

    ランタイム エラー

    このエラーは、ポリシーの実行時に発生することがあります。

    障害コード HTTP ステータス 原因 修正
    policies.ratelimit.FailedToResolveSpikeArrestRate 500 このエラーは、<Rate> 要素内のレート設定を含む変数への参照を、SpikeArrest ポリシー内の値に解決できない場合に発生します。この要素は必須であり、intpm または intps の形式でスパイク阻止レートを指定する場合に使用します。
    policies.ratelimit.InvalidMessageWeight 500 このエラーは、フロー変数で <MessageWeight> 要素に指定された値が無効な場合(整数以外の値)場合に発生します。
    policies.ratelimit.SpikeArrestViolation 429 レート制限を超過しています。

    デプロイエラー

    以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

    エラー名 原因 修正
    InvalidAllowedRate SpikeArrest ポリシーの <Rate> 要素で指定されたスパイク阻止レートが整数でない場合、またはレートに接尾辞として ps または pm がない場合、API プロキシのデプロイは失敗します。

    障害変数

    ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

    変数 説明
    fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "SpikeArrestViolation"
    ratelimit.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 ratelimit.SA-SpikeArrestPolicy.failed = true

    エラー レスポンスの例

    以下は、エラー レスポンスの例です。

    {  
       "fault":{  
          "detail":{  
             "errorcode":"policies.ratelimit.SpikeArrestViolation"
          },
          "faultstring":"Spike arrest violation. Allowed rate : 10ps"
       }
    }

    障害ルールの例

    以下は、SpikeArrestViolation 障害を処理する障害ルールの例です。

    <FaultRules>
        <FaultRule name="Spike Arrest Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "SpikeArrestViolation") </Condition>
            </Step>
            <Condition>ratelimit.Spike-Arrest-1.failed=true</Condition>
        </FaultRule>
    </FaultRules>

    VerifyAPIKey ポリシー

    このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

    ランタイム エラー

    このエラーは、ポリシーの実行時に発生することがあります。

    障害コード HTTP ステータス 原因
    keymanagement.service.consumer_key_missing_api_product_association 400

    アプリケーションの認証情報に API プロダクトの関連付けが含まれていません。キーのアプリケーションを API プロダクトに関連付けてください。これは、デベロッパー アプリや AppGroup アプリなど、すべての種類のアプリケーションに適用されます。

    keymanagement.service.DeveloperStatusNotActive 401

    使用している API キーに関連付けられたデベロッパー アプリのデベロッパーが非アクティブになっています。アプリ デベロッパーのステータスが非アクティブに設定されると、このデベロッパーが作成したすべてのデベロッパー アプリも無効になります。適切な権限のある管理ユーザー(組織管理者など)は、次の方法でデベロッパーのステータスを変更できます。

    keymanagement.service.invalid_client-app_not_approved 401 API キーに関連付けられたデベロッパー アプリが取り消されています。取り消されたアプリは、API プロダクトにアクセスできず、Apigee が管理する API を呼び出すことはできません。組織管理者は、Apigee API を使用してデベロッパー アプリのステータスを変更できます。鍵ペアの生成またはデベロッパー アプリのステータスの更新をご覧ください。
    oauth.v2.FailedToResolveAPIKey 401 ポリシーは、ポリシーの <APIKey> 要素で指定された変数に API キーが格納されていることを前提としています。 このエラーは、想定した変数が存在しない(解決できない)場合に発生します。
    oauth.v2.InvalidApiKey 401 Apigee が API キーを受け取りましたが、キーが無効です。Apigee は、データベースでキーを検索するときに、リクエストで送信されたキーと完全に一致するキーを検索します。以前に機能していた API の場合は、キーが再生成されていないことを確認してください。キーが再生成されているときに古いキーを使用しようとすると、このエラーが表示されます。詳しくは、アプリ登録を使用した API へのアクセスの管理をご覧ください。
    oauth.v2.InvalidApiKeyForGivenResource 401 Apigee は、有効な API キーを受信していますが、プロダクトで API プロキシに関連付けられたデベロッパー アプリで承認済みのキーと一致していません。

    デプロイエラー

    以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

    エラー名 原因
    SpecifyValueOrRefApiKey <APIKey> 要素に値とキーが指定されていません。

    障害変数

    ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

    変数 説明
    fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "FailedToResolveAPIKey"
    oauthV2.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 oauthV2.VK-VerifyAPIKey.failed = true

    エラー レスポンスの例

    {  
       "fault":{  
          "faultstring":"Invalid ApiKey",
          "detail":{  
             "errorcode":"oauth.v2.InvalidApiKey"
          }
       }
    }
    {  
       "fault":{  
          "detail":{  
             "errorcode":"keymanagement.service.DeveloperStatusNotActive"
          },
          "faultstring":"Developer Status is not Active"
       }
    }

    障害ルールの例

    <FaultRule name="FailedToResolveAPIKey">
        <Step>
            <Name>AM-FailedToResolveAPIKey</Name>
        </Step>
        <Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
    </FaultRule>

    VerifyIAM ポリシー

    このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

    ランタイム エラー

    このエラーは、ポリシーの実行時に発生することがあります。

    障害コード HTTP ステータス 原因
    steps.verifyiam.CredentialSourceRefUnresolved 400 認証情報ソース内で指定されたフロー変数を解決できませんでした。
    steps.verifyiam.CredentialValueNotProvided 400 認証情報が見つかりません。認証情報のソース参照が指定されていない場合は、認可ヘッダーなどのデフォルトの場所を参照します。
    steps.verifyiam.Forbidden 403 十分な権限がない、アクセス スコープがない、またはその他の関連する問題が発生しているため、リクエストを転送できませんでした。
    steps.verifyiam.MiscellaneousAuthorizationConfigurationError 500 IAM への認証リクエストに関する問題。API プロデューサーは、エラー レスポンスの詳細に基づいてこのエラーを修正する必要があります。
    steps.verifyiam.Unauthorized 401 認証情報に関する問題(値が無効である、有効期限が切れているなど)。
    steps.verifyiam.UnexpectedAuthorizationInfrastructureError 500 内部エラー。

    デプロイエラー

    このポリシーは、ポリシー固有のデプロイエラーを返しません。

    障害変数

    次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。

    変数 説明
    fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name="Unauthorized"
    verifyiam.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 verifyiam.Verify-IAMToken.failed = true

    VerifyJWS ポリシー

    このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

    ランタイム エラー

    このエラーは、ポリシーの実行時に発生することがあります。

    障害コード HTTP ステータス 発生条件
    steps.jws.AlgorithmInTokenNotPresentInConfiguration 401 検証ポリシーに複数のアルゴリズムがある場合。
    steps.jws.AlgorithmMismatch 401 Generate ポリシーでヘッダーに指定されたアルゴリズムが、Verify ポリシーで想定されたアルゴリズムと異なる場合。指定されたアルゴリズムが一致している必要があります。
    steps.jws.ContentIsNotDetached 401 JWS に分離済みコンテンツ ペイロードが含まれているのに <DetachedContent> が指定されている場合。
    steps.jws.FailedToDecode 401 ポリシーで JWS をデコードできなかった場合。JWS が破損している可能性があります。
    steps.jws.InsufficientKeyLength 401 HS256 アルゴリズムの鍵が 32 バイト未満の場合。
    steps.jws.InvalidClaim 401 クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。
    steps.jws.InvalidCurve 401 鍵で指定された曲線が、楕円曲線アルゴリズムでは無効な場合。
    steps.jws.InvalidJsonFormat 401 JWS ヘッダーで無効な JSON が検出された場合。
    steps.jws.InvalidJws 401 JWS 署名の検証で不合格だった場合。
    steps.jws.InvalidPayload 401 JWS ペイロードが無効な場合。
    steps.jws.InvalidSignature 401 <DetachedContent> が省略され、JWS に分離されたコンテンツ ペイロードがある場合。
    steps.jws.KeyIdMissing 401 Verify ポリシーが公開鍵のソースとして JWKS を使用しているが、署名付き JWS のヘッダーに kid プロパティが含まれてない場合。
    steps.jws.KeyParsingFailed 401 指定された鍵情報で公開鍵を解析できない場合。
    steps.jws.MissingPayload 401 JWS ペイロードが欠落している場合。
    steps.jws.NoAlgorithmFoundInHeader 401 JWS がアルゴリズム ヘッダーを省略すると発生します。
    steps.jws.NoMatchingPublicKey 401 Verify ポリシーが JWKS を公開鍵のソースとして使用するが、署名付き JWS の kid は JWKS にリストされない場合。
    steps.jws.UnhandledCriticalHeader 401 crit ヘッダーの Verify JWS ポリシーで見つかったヘッダーが KnownHeaders にリストされていない場合。
    steps.jws.UnknownException 401 不明な例外が発生した場合。
    steps.jws.WrongKeyType 401 鍵のタイプが正しくない場合。たとえば、楕円曲線アルゴリズムで RSA 鍵を指定した場合や、RSA アルゴリズムで曲線鍵を指定した場合など。

    デプロイエラー

    以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

    エラー名 発生条件
    InvalidAlgorithm 有効な値: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512

    EmptyElementForKeyConfiguration

    FailedToResolveVariable

    InvalidConfigurationForActionAndAlgorithmFamily

    InvalidConfigurationForVerify

    InvalidEmptyElement

    InvalidFamiliesForAlgorithm

    InvalidKeyConfiguration

    InvalidNameForAdditionalClaim

    InvalidNameForAdditionalHeader

    InvalidPublicKeyId

    InvalidPublicKeyValue

    InvalidSecretInConfig

    InvalidTypeForAdditionalClaim

    InvalidTypeForAdditionalHeader

    InvalidValueForElement

    InvalidValueOfArrayAttribute

    InvalidVariableNameForSecret

    MissingConfigurationElement

    MissingElementForKeyConfiguration

    MissingNameForAdditionalClaim

    MissingNameForAdditionalHeader

    発生の可能性があるその他のデプロイエラー。

    障害変数

    ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

    変数 説明
    fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "TokenExpired"
    JWS.failed 障害の場合は、すべての JWS ポリシーで同じ変数が設定されます。 jws.JWS-Policy.failed = true

    エラー レスポンスの例

    ベスト プラクティスとして、エラー処理でエラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。

    障害ルールの例

    <FaultRules>
        <FaultRule name="JWS Policy Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "TokenExpired")</Condition>
            </Step>
            <Condition>JWS.failed=true</Condition>
        </FaultRule>
    </FaultRules>

    VerifyJWT ポリシー

    このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

    ランタイム エラー

    このエラーは、ポリシーの実行時に発生することがあります。

    障害コード HTTP ステータス 発生条件
    steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 検証ポリシーに複数のアルゴリズムがある場合。
    steps.jwt.AlgorithmMismatch 401 Generate ポリシーで指定されたアルゴリズムが、Verify ポリシーで想定されているアルゴリズムと一致しない場合。指定されたアルゴリズムが一致している必要があります。
    steps.jwt.FailedToDecode 401 ポリシーで JWT をデコードできなかった場合。JWT が破損している可能性があります。
    steps.jwt.GenerationFailed 401 ポリシーで JWT を生成できなかった場合。
    steps.jwt.InsufficientKeyLength 401 HS256 アルゴリズムで鍵が 32 バイト未満の場合、HS386 アルゴリズムで鍵が 48 バイト未満の場合、HS512 アルゴリズムで鍵が 64 バイト未満の場合。
    steps.jwt.InvalidClaim 401 クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。
    steps.jwt.InvalidConfiguration 401 <Algorithm> 要素と <Algorithms> 要素の両方が存在する場合。
    steps.jwt.InvalidCurve 401 鍵で指定された曲線が、楕円曲線アルゴリズムでは無効な場合。
    steps.jwt.InvalidIterationCount 401 暗号化された JWT で使用された反復回数が、VerifyJWT ポリシーの構成で指定された反復回数と一致していない場合。これは、<PasswordKey> を使用する JWT にのみ適用されます。
    steps.jwt.InvalidJsonFormat 401 ヘッダーまたはペイロードで無効な JSON が検出された場合。
    steps.jwt.InvalidKeyConfiguration 401 <PublicKey> 要素の JWKS が無効です。理由としては、Apigee インスタンスから JWKS URI エンドポイントに到達できないことが考えられます。パススルー プロキシを作成し、JWKS エンドポイントをターゲットとして使用して、エンドポイントとの接続をテストします。
    steps.jwt.InvalidSaltLength 401 暗号化された JWT で使用されたソルトの長さが、VerifyJWT ポリシーの構成で指定されたソルトの長さと一致していない場合。これは、<PasswordKey> を使用する JWT にのみ適用されます。
    steps.jwt.InvalidPasswordKey 401 指定した鍵が要件を満たしていない場合。
    steps.jwt.InvalidPrivateKey 401 指定した鍵が要件を満たしていない場合。
    steps.jwt.InvalidPublicKey 401 指定した鍵が要件を満たしていない場合。
    steps.jwt.InvalidSecretKey 401 指定した鍵が要件を満たしていない場合。
    steps.jwt.InvalidToken 401 JWT 署名の検証で不合格だった場合。
    steps.jwt.JwtAudienceMismatch 401 トークンの検証でオーディエンス クレームが不合格だった場合。
    steps.jwt.JwtIssuerMismatch 401 トークンの検証で発行元クレームが不合格だった場合。
    steps.jwt.JwtSubjectMismatch 401 トークンの検証でサブジェクト クレームが不合格だった場合。
    steps.jwt.KeyIdMissing 401 Verify ポリシーが公開鍵のソースとして JWKS を使用しているが、署名付き JWT のヘッダーに kid プロパティが含まれてない場合。
    steps.jwt.KeyParsingFailed 401 指定された鍵情報で公開鍵を解析できない場合。
    steps.jwt.NoAlgorithmFoundInHeader 401 JWT にアルゴリズム ヘッダーが含まれていない場合。
    steps.jwt.NoMatchingPublicKey 401 Verify ポリシーが JWKS を公開鍵のソースとして使用するが、署名付き JWT の kid は JWKS にリストされない場合。
    steps.jwt.SigningFailed 401 GenerateJWT で、HS384 または HS512 アルゴリズムの鍵が最小サイズより小さい場合。
    steps.jwt.TokenExpired 401 ポリシーが期限切れのトークンを検証しようとしている場合。
    steps.jwt.TokenNotYetValid 401 トークンがまだ有効になっていない場合。
    steps.jwt.UnhandledCriticalHeader 401 crit ヘッダーの Verify JWT ポリシーで見つかったヘッダーが KnownHeaders にリストされていない場合。
    steps.jwt.UnknownException 401 不明な例外が発生した場合。
    steps.jwt.WrongKeyType 401 鍵のタイプが正しくない場合。たとえば、楕円曲線アルゴリズムで RSA 鍵を指定した場合や、RSA アルゴリズムで曲線鍵を指定した場合など。

    デプロイエラー

    以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

    エラー名 原因 修正
    InvalidNameForAdditionalClaim <AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームの型が登録済みの名前(kidisssubaudiatexpnbfjti)のいずれかである場合、デプロイが失敗します。
    InvalidTypeForAdditionalClaim <AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームが stringnumberbooleanmap 型でない場合、デプロイが失敗します。
    MissingNameForAdditionalClaim <AdditionalClaims> 要素の子要素 <Claim> でクレームの名前が指定されていない場合、デプロイが失敗します。
    InvalidNameForAdditionalHeader このエラーは、<AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームの名前が alg または typ の場合に発生します。
    InvalidTypeForAdditionalHeader <AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームの型が stringnumberbooleanmap 型でない場合、デプロイが失敗します。
    InvalidValueOfArrayAttribute このエラーは、<AdditionalClaims> 要素の子要素 <Claim> 内の配列属性の値が true または false に設定されていない場合に発生します。
    InvalidValueForElement <Algorithm> 要素に指定された値がサポートされていない場合、デプロイが失敗します。
    MissingConfigurationElement このエラーは、<PrivateKey> 要素が RSA ファミリー アルゴリズムで使用されていない場合や、<SecretKey> 要素が HS ファミリー アルゴリズムで使用されていない場合に発生します。
    InvalidKeyConfiguration 子要素 <Value><PrivateKey> 要素または <SecretKey> 要素で定義されていない場合、デプロイが失敗します。
    EmptyElementForKeyConfiguration <PrivateKey> 要素または <SecretKey> 要素の子要素 <Value> の ref 属性が空か、指定されていない場合、デプロイが失敗します。
    InvalidConfigurationForVerify このエラーは、<Id> 要素が <SecretKey> 要素内で定義されている場合に発生します。
    InvalidEmptyElement このエラーは、Verify JWT ポリシーの <Source> 要素が空の場合に発生します。存在する場合、Apigee フロー変数名で定義する必要があります。
    InvalidPublicKeyValue <PublicKey> 要素の子要素 <JWKS> で使用されている値が、RFC 7517 で指定されている有効な形式になっていない場合、デプロイが失敗します。
    InvalidConfigurationForActionAndAlgorithm <PrivateKey> 要素が HS ファミリー アルゴリズムで使用されている場合、または <SecretKey> 要素が RSA ファミリー アルゴリズムで使用されている場合、デプロイが失敗します。

    障害変数

    ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

    変数 説明
    fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "InvalidToken"
    JWT.failed 障害の場合、すべての JWT ポリシーで同じ変数が設定されます。 JWT.failed = true

    エラー レスポンスの例

    JWT ポリシーの障害コード

    ベスト プラクティスとして、エラー処理では、エラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。

    障害ルールの例

        <FaultRules>
            <FaultRule name="JWT Policy Errors">
                <Step>
                    <Name>JavaScript-1</Name>
                    <Condition>(fault.name Matches "InvalidToken")</Condition>
                </Step>
                <Condition>JWT.failed=true</Condition>
            </FaultRule>
        </FaultRules>
        

    XMLThreatProtection ポリシー

    このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

    ランタイム エラー

    このエラーは、ポリシーの実行時に発生することがあります。

    障害コード HTTP ステータス 原因 修正
    steps.xmlthreatprotection.ExecutionFailed 500 XMLThreatProtection ポリシーは、さまざまな種類の ExecutionFailed エラーをスローできます。エラーのほとんどは、ポリシーで設定された特定のしきい値を超えた場合に発生します。これらのタイプのエラーには、次のようなものがあります。要素名の長さ子の数ノードの深さ属性の数属性名の長さ、他多数。詳細なリストについては、XMLThreatProtection ポリシーのランタイム エラーのトラブルシューティングをご覧ください。
    steps.xmlthreatprotection.InvalidXMLPayload 500 このエラーは、XMLThreatProtection ポリシーの <Source> 要素で指定された入力メッセージ ペイロードが有効な XML ドキュメントでない場合に発生します。
    steps.xmlthreatprotection.SourceUnavailable 500 このエラーは、<Source> 要素で指定されたメッセージ変数が次のいずれかである場合に発生します。
    • 範囲外(ポリシーが実行されている特定のフローで使用できない)
    • 有効な値(requestresponsemessage)のいずれでもない
    steps.xmlthreatprotection.NonMessageVariable 500 このエラーは、<Source> 要素がメッセージ型以外の変数に設定されている場合に発生します。

    デプロイエラー

    なし。

    障害変数

    ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

    変数 説明
    fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name Matches "SourceUnavailable"
    xmlattack.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 xmlattack.XPT-SecureRequest.failed = true

    エラー レスポンスの例

    {
      "fault": {
        "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2",
        "detail": {
          "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
      }
    }

    障害ルールの例

    <FaultRule name="XML Threat Protection Policy Faults">
        <Step>
            <Name>AM-CustomErrorResponse</Name>
            <Condition>(fault.name Matches "ExecutionFailed") </Condition>
        </Step>
        <Condition>(xmlattack.XPT-SecureRequest.failed = true) </Condition>
    </FaultRule>

    XMLtoJSON ポリシー

    このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

    ランタイム エラー

    このエラーは、ポリシーの実行時に発生することがあります。

    障害コード HTTP ステータス 原因 修正
    steps.xmltojson.ExecutionFailed ExecutionFailed このエラーは、入力ペイロード(XML)が空の場合、または入力 XML が無効か形式が正しくない場合に発生します。
    steps.xmltojson.InCompatibleTypes ExecutionFailed このエラーは、<Source> 要素で定義された変数の型と、<OutputVariable> 要素で定義された変数の型が異なる場合に発生します。<Source> 要素に含まれる変数の型と <OutputVariable> 要素に含まれる変数の型は一致している必要があります。
    steps.xmltojson.InvalidSourceType ExecutionFailed このエラーは、<Source> 要素の定義に使用される変数の型が無効な場合に発生します。有効な変数の型は message と string です。
    steps.xmltojson.OutputVariableIsNotAvailable ExecutionFailed このエラーは、XML to JSON ポリシーの <Source> 要素で指定された変数が String 型であり、<OutputVariable> 要素が定義されていない場合に発生します。<Source> 要素で定義された変数が文字列型の場合、<OutputVariable> 要素は必須です。
    steps.xmltojson.SourceUnavailable ExecutionFailed このエラーは、XML to JSON ポリシーの <Source> 要素で指定された message 変数が、次のいずれかである場合に発生します。
    • 範囲外(ポリシーが実行されている特定のフローで使用できない)
    • 解決不能(未定義)

    デプロイエラー

    以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

    エラー名 原因 修正
    EitherOptionOrFormat <Options> または <Format> のいずれかの要素が XML to JSON ポリシーに宣言されていない場合、API プロキシのデプロイは失敗します。
    UnknownFormat XML to JSON ポリシー内の <Format> 要素に不明な形式が定義されている場合、API プロキシのデプロイは失敗します。事前定義された形式には、xml.comyahoogooglebadgerFish があります。

    障害変数

    ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。

    変数 説明
    fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name = "SourceUnavailable"
    xmltojson.policy_name.failed policy_name は、障害が発生したポリシーのユーザー指定の名前です。 xmltojson.XMLtoJSON-1.failed = true

    エラー レスポンスの例

    {
      "fault": {
        "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available",
        "detail": {
          "errorcode": "steps.xml2json.SourceUnavailable"
        }
      }
    }

    障害ルールの例

    <faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="XML to JSON Faults">
        <Step>
            <Name>AM-SourceUnavailableMessage</Name>
            <Condition>(fault.name Matches "SourceUnavailable") </Condition>
        </Step>
        <Step>
            <Name>AM-BadXML</Name>
            <Condition>(fault.name = "ExecutionFailed")</Condition>
        </Step>
        <Condition>(xmltojson.XMLtoJSON-1.failed = true) </Condition>
    </FaultRule>

    XSLTransform ポリシー

    ランタイム エラー

    このエラーは、ポリシーの実行時に発生することがあります。

    障害コード HTTP ステータス 原因 修正
    steps.xsl.XSLSourceMessageNotAvailable 500 このエラーは、XSLTransform ポリシーの <Source> 要素で指定されたメッセージまたは文字列変数がスコープ外である場合(ポリシーが実行されている特定のフローで使用できない場合)か、解決できない(定義されていない)場合に発生します。
    steps.xsl.XSLEvaluationFailed 500 このエラーは、入力 XML ペイロードが使用できないか、不正な形式の場合に発生します。また、XSLTransform ポリシーが XSL ファイルに指定された変換ルールに基づいて入力 XML ファイルを変換できない場合にも発生します。XSLTransform ポリシーは、さまざまな原因で失敗します。エラー メッセージに含まれている失敗の理由から、原因についてより詳しい情報を得ることができます。

    デプロイエラー

    以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。

    エラー名 原因 修正
    XSLEmptyResourceUrl XSLTransform ポリシーの <ResourceURL> 要素が空の場合、API プロキシのデプロイが失敗します。
    XSLInvalidResourceType XSLTransform ポリシーの <ResourceURL> 要素に指定されたリソースタイプが xsl タイプでない場合、API プロキシのデプロイが失敗します。