정책 오류 참조

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서를 보세요.

AccessControl 정책

이 섹션에서는 반환되는 오류 코드 및 오류 메시지와 이 정책이 오류를 트리거할 때 Apigee에서 설정한 오류 변수를 설명합니다. 오류를 처리하기 위해 오류 규칙을 개발 중인 경우, 이 정보는 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항오류 처리를 참조하세요.

런타임 오류

이러한 오류는 정책이 실행될 때 발생할 수 있습니다.

오류 코드 HTTP 상태 원인 수정
accesscontrol.IPDeniedAccess 403 클라이언트 IP 주소 또는 API 요청에서 전달된 IP 주소가 액세스 제어 정책의 <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 흐름 변수 request, response, message는 메시지 유형입니다. message 변수에 대한 자세한 내용은 변수 참조를 확인하세요.

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 이 오류는 SOAPMessageValidation 정책의 Source 요소에 지정된 message 변수가 다음 중 하나일 때 발생합니다.
  • 범위를 벗어난 경우(정책이 실행 중인 특정 흐름에서 사용할 수 없음)
  • 확인할 수 없는 경우(정의되지 않음)
steps.extractvariables.UnableToCast 500 이 오류는 정책이 추출된 값을 변수로 전송할 수 없는 경우에 발생합니다. 일반적으로 한 데이터 유형의 값을 다른 데이터 유형의 변수로 설정하려고 하면 이 오류가 발생합니다.

배포 오류

이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.

오류 이름 원인 수정
NothingToExtract 정책에 URIPath, QueryParam, Header, FormParam, XMLPayload 또는 JSONPayload 요소가 없으면 추출할 대상이 없기 떄문에 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 정책이 QueryParam, Header, FormParam 또는 Variable과 같은 정책 요소 안에 필요한 name 속성을 가지지 않는다면 API 프록시가 실패합니다.
PatternWithoutVariable 정책에 Pattern 요소 내에 지정된 변수가 없으면 API 프록시 배포는 실패합니다. Pattern 요소에는 추출된 데이터가 저장될 변수의 이름이 필요합니다.
CannotBeConvertedToNodeset 정책에 Variable 유형이 nodeset로 정의된 XPath 표현식이 있지만 표현식을 nodeset로 변환할 수 없으면 API 프록시 배포가 실패합니다.
JSONPathCompilationFailed 정책에서 지정된 JSON 경로를 컴파일할 수 없습니다. 해당 사항 없음
InstantiationFailed 정책을 인스턴스화할 수 없습니다. 해당 사항 없음
XPathCompilationFailed XPath 요소에 사용된 프리픽스 또는 값이 정책에 선언된 네임스페이스의 일부가 아닌 경우 API 프록시의 배포는 실패합니다.
InvalidPattern 정책의 URIPath, QueryParam, Header, FormParam, XMLPayload 또는 JSONPayload와 같은 요소에서 Pattern 요소의 정의가 잘못되었으면 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 정책

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Occurs when
steps.jws.GenerationFailed 401 The policy was unable to generate the JWS.
steps.jws.InsufficientKeyLength 401 For a key less than 32 bytes for the HS256 algorithm
steps.jws.InvalidClaim 401 For a missing claim or claim mismatch, or a missing header or header mismatch.
steps.jws.InvalidCurve 401 The curve specified by the key is not valid for the Elliptic Curve algorithm.
steps.jws.InvalidJsonFormat 401 Invalid JSON found in the JWS header.
steps.jws.InvalidPayload 401 The JWS payload is invalid.
steps.jws.InvalidSignature 401 <DetachedContent> is omitted and the JWS has a detached content payload.
steps.jws.KeyIdMissing 401 The Verify policy uses a JWKS as a source for public keys, but the signed JWS does not include a kid property in the header.
steps.jws.KeyParsingFailed 401 The public key could not be parsed from the given key information.
steps.jws.MissingPayload 401 The JWS payload is missing.
steps.jws.NoAlgorithmFoundInHeader 401 Occurs when the JWS omits the algorithm header.
steps.jws.SigningFailed 401 In GenerateJWS, for a key less than the minimum size for the HS384 or HS512 algorithms
steps.jws.UnknownException 401 An unknown exception occurred.
steps.jws.WrongKeyType 401 Wrong type of key specified. For example, if you specify an RSA key for an Elliptic Curve algorithm, or a curve key for an RSA algorithm.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Occurs when
InvalidAlgorithm The only valid values are: 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

Other possible deployment errors.

오류 변수

이러한 변수는 런타임 오류가 발생하면 설정됩니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항을 참조하세요.

변수 장소
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 생성 정책에 지정된 알고리즘이 확인 정책에서 예상되는 알고리즘과 일치하지 않습니다. 지정된 알고리즘이 일치해야 합니다.
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 확인 정책은 JWKS를 공개 키의 소스로 사용하지만 서명된 JWT에는 헤더의 kid 속성이 포함되지 않습니다.
steps.jwt.KeyParsingFailed 401 지정된 키 정보에서 공개 키를 파싱할 수 없습니다.
steps.jwt.NoAlgorithmFoundInHeader 401 JWT에 알고리즘 헤더가 없으면 발생합니다.
steps.jwt.NoMatchingPublicKey 401 인증 정책은 JWKS를 공개 키의 소스로 사용하지만 서명된 JWT의 kid가 JWKS에 나열되지 않습니다.
steps.jwt.SigningFailed 401 GenerateJWT에서 HS384 또는 HS512 알고리즘의 최소 크기보다 작은 키일 때 발생합니다.
steps.jwt.TokenExpired 401 정책이 만료된 토큰을 확인하려고 시도합니다.
steps.jwt.TokenNotYetValid 401 토큰이 아직 유효하지 않습니다.
steps.jwt.UnhandledCriticalHeader 401 crit 헤더의 JWT 인증 정책에서 찾은 헤더가 KnownHeaders에 표시되지 않습니다.
steps.jwt.UnknownException 401 알 수 없는 예외가 발생했습니다.
steps.jwt.WrongKeyType 401 잘못된 유형의 키가 지정되었습니다. 예를 들어 타원 곡선 알고리즘의 RSA 키를 지정하거나 RSA 알고리즘의 곡선 키를 지정하는 경우입니다.

배포 오류

이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.

오류 이름 원인 수정
InvalidNameForAdditionalClaim <AdditionalClaims> 요소의 하위 요소 <Claim>에 사용된 클레임이 다음 등록된 이름 kid, iss, sub, aud, iat, exp, nbf 또는 jti 중 하나인 경우 배포가 실패합니다.
InvalidTypeForAdditionalClaim <AdditionalClaims> 요소의 하위 요소 <Claim>에 사용된 클레임 유형이 string, number, boolean 또는 map 유형이 아닌 경우 배포가 실패합니다.
MissingNameForAdditionalClaim <AdditionalClaims> 요소의 하위 요소 <Claim>에서 클레임 이름이 지정되지 않으면 배포가 실패합니다.
InvalidNameForAdditionalHeader <AdditionalClaims> 요소의 하위 요소 <Claim>에 사용된 클레임 이름이 alg 또는 typ인 경우 이 오류가 발생합니다.
InvalidTypeForAdditionalHeader <AdditionalClaims> 요소의 하위 요소 <Claim>에 사용된 클레임 유형이 string, number, boolean 또는 map 유형이 아닌 경우 배포가 실패합니다.
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 실행 중 자바 코드에서 예외가 발생하거나 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] 해당 사항 없음 결함 문자열을 참조하세요. 지원되는 자바 버전은 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>

자바스크립트 정책

이 섹션에서는 반환되는 오류 코드 및 오류 메시지와 이 정책이 오류를 트리거할 때 Apigee에서 설정한 오류 변수를 설명합니다. 오류를 처리하기 위해 오류 규칙을 개발 중인 경우, 이 정보는 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항오류 처리를 참조하세요.

런타임 오류

이러한 오류는 정책이 실행될 때 발생할 수 있습니다.

오류 코드 HTTP 상태 원인 수정
steps.javascript.ScriptExecutionFailed 500 JavaScript 정책으로 인해 여러 가지 유형의 ScriptExecutionFailed 오류가 발생할 수 있습니다. 흔히 볼 수 있는 오류 유형에는 RangeError, ReferenceError, SyntaxError, TypeError, URIError가 있습니다.
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> 요소가 jsc(JavaScript 파일) 이외의 리소스 유형을 참조하는 경우에 배포 중에 발생합니다.
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 정책

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
steps.jsonthreatprotection.ExecutionFailed 500 The JSONThreatProtection policy can throw many different types of ExecutionFailed errors. Most of these errors occur when a specific threshold set in the policy is exceeded. These types of errors include: object entry name length, object entry count, array element count, container depth, string string value length. This error also occurs when the payload contains an invalid JSON object.
steps.jsonthreatprotection.SourceUnavailable 500 This error occurs if the message variable specified in the <Source> element is either:
  • Out of scope (not available in the specific flow where the policy is being executed)
  • Is not one of the valid values request, response, or message
steps.jsonthreatprotection.NonMessageVariable 500 This error occurs if the <Source> element is set to a variable which is not of type message.

Deployment errors

None.

Fault variables

These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "SourceUnavailable"
jsonattack.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. jsonattack.JTP-SecureRequest.failed = true

Example error response

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

Example fault rule

<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-XML 정책에 전달되는 입력(JSON)이 무효이거나 형식이 잘못되었습니다.
steps.jsontoxml.InCompatibleTypes 500 이 오류는 <Source> 요소 및 <OutputVariable> 요소에 정의된 변수 유형이 동일하지 않을 때 발생합니다. <Source> 요소 및 <OutputVariable> 요소 내에 포함된 변수는 유형이 일치해야 합니다. 유효한 message 유형은 string 및 입니다.
steps.jsontoxml.InvalidSourceType 500 이 오류는 <Source> 요소를 정의하기 위해 사용되는 변수 유형이 무효인 경우에 발생합니다. 유효한 변수 유형은 messagestring입니다.
steps.jsontoxml.OutputVariableIsNotAvailable 500 이 오류는 <Source> JSON-XML 정책의 요소에 지정된 변수가 문자열 유형이고 <OutputVariable> 요소가 정의되지 않은 경우에 발생합니다. <Source> 요소에 정의된 변수가 문자열 유형인 경우 <OutputVariable> 요소는 필수입니다.
steps.jsontoxml.SourceUnavailable 500 이 오류는 JSON-XML 정책의 <Source> 요소에 지정된 메시지 변수가 다음 중 하나인 경우 발생합니다.
  • 범위를 벗어난 경우(정책이 실행 중인 특정 흐름에서 사용할 수 없음)
  • 확인할 수 없는 경우(정의되지 않음)

배포 오류

없음.

오류 변수

이러한 변수는 런타임 오류가 발생하면 설정됩니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항을 참조하세요.

변수 장소
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 속성이 0 또는 음수이면 API 프록시 배포가 실패합니다. 색인은 1에서 시작하므로 0 또는 음수인 정수의 색인은 잘못된 것으로 간주됩니다.
KeyIsMissing 이 오류는 <Key> 요소가 완전히 누락되거나 <Parameter> 요소가 KeyValueMapOperations 정책의 <InitialEntries> 요소 <Entry> 아래의 <Key> 요소와 함께 누락된 경우에 발생합니다.
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 런타임 포드마다 적용됩니다. 예를 들어 트래픽이 Apigee 런타임 포드의 두 인스턴스에 분산되는 경우 유효 한도는 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> 요소는 메시지 유형이 아닌 변수로 설정됩니다.

배포 오류

이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.

오류 이름 원인
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 정책

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP Status Occurs when
policies.populatecache.EntryCannotBeCached 500 An entry cannot be cached. The message object being cached is not an instance of a class that is Serializable.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidCacheResourceReference This error occurs if the <CacheResource> element in the PopulateCache policy is set to a name that does not exist in the environment where the API proxy is being deployed.
CacheNotFound The cache specified in the <CacheResource> element does not exist.

Fault variables

These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. populatecache.POP-CACHE-1.failed = true

Example error response

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

Example fault rule

<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 정책

This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.

Error code prefix

N/A

Runtime errors

This policy does not throw any runtime errors.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidCacheResourceReference This error occurs if the <CacheResource> element is set to a name which does not exist in the environment where the API proxy is being deployed.
InvalidTimeout If the <CacheLookupTimeoutInSeconds> element is set to a negative number, then the deployment of the API proxy fails.
CacheNotFound This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component.

Fault variables

N/A

Example error response

N/A

InvalidateCache 정책

This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.

Error code prefix

N/A

Runtime errors

This policy does not throw any runtime errors.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidCacheResourceReference This error occurs if the <CacheResource> element in the InvalidateCache policy is set to a name that does not exist in the environment where the API proxy is being deployed.
CacheNotFound This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component.

Fault variables

N/A

Example error response

N/A

ResponseCache 정책

이 섹션에서는 이 정책이 오류를 트리거할 때 설정되는 오류 메시지 및 흐름 변수에 대해 설명합니다. 이 정보는 프록시에 대한 오류 규칙을 개발하는 중이라면 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항오류 처리를 참조하세요.

오류 코드 프리픽스

해당 사항 없음

런타임 오류

이 정책은 런타임 오류를 발생시키지 않습니다.

배포 오류

이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.

오류 이름 원인 수정
InvalidTimeout ResponseCache 정책의 <CacheLookupTimeoutInSeconds> 요소가 음수로 설정되면 API 프록시 배포가 실패합니다.
InvalidCacheResourceReference 이 오류는 ResponseCache 정책의 <CacheResource> 요소가 API 프록시가 배포되는 환경에 존재하지 않는 이름으로 설정되는 경우에 발생합니다.
ResponseCacheStepAttachmentNotAllowedReq 이 오류는 동일한 ResponseCache 정책이 API 프록시의 흐름 내에서 여러 요청 경로에 연결된 경우 발생합니다.
ResponseCacheStepAttachmentNotAllowedResp 이 오류는 동일한 ResponseCache 정책이 API 프록시의 흐름 내에서 여러 응답 경로에 연결된 경우 발생합니다.
InvalidMessagePatternForErrorCode 이 오류는ResponseCache 정책에서 <SkipCacheLookup> 또는 <SkipCachePopulation> 요소에 잘못된 조건이 포함된 경우에 발생합니다.
CacheNotFound 이 오류는 오류 메시지에 언급된 특정 캐시가 특정 메시지 프로세서 구성요소에 생성되지 않은 경우에 발생합니다.

오류 변수

해당 사항 없음

오류 응답 예시

해당 사항 없음

OAuthV2 정책

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Thrown by operations
steps.oauth.v2.access_token_expired 401 The access token is expired.

VerifyAccessToken
InvalidateToken

steps.oauth.v2.access_token_not_approved 401 The access token was revoked. VerifyAccessToken
steps.oauth.v2.apiproduct_doesnot_exist 401 The requested API product does not exist in any of the API products associated with the access token. VerifyAccessToken
steps.oauth.v2.FailedToResolveAccessToken 500 The policy expected to find an access token in a variable specified in the <AccessToken> element, but the variable could not be resolved. GenerateAccessToken
steps.oauth.v2.FailedToResolveAuthorizationCode 500 The policy expected to find an authorization code in a variable specified in the <Code> element, but the variable could not be resolved. GenerateAuthorizationCode
steps.oauth.v2.FailedToResolveClientId 500 The policy expected to find the Client ID in a variable specified in the <ClientId> element, but the variable could not be resolved. GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.FailedToResolveRefreshToken 500 The policy expected to find a refresh token in a variable specified in the <RefreshToken> element, but the variable could not be resolved. RefreshAccessToken
steps.oauth.v2.FailedToResolveToken 500 The policy expected to find a token in a variable specified in the <Tokens> element, but the variable could not be resolved.

ValidateToken
InvalidateToken

steps.oauth.v2.InsufficientScope 403 The access token presented in the request has a scope that does not match the scope specified in the verify access token policy. To learn about scope, see Working with OAuth2 scopes. VerifyAccessToken
steps.oauth.v2.invalid_client 401

This error name is returned when the <GenerateResponse> property of the policy is set to true and the client ID sent in the request is invalid. Check to be sure you are using the correct client key and secret values for the Developer App associated with your proxy. Typically, these values are sent as a Base64 encoded Basic Authorization header.

GenerateAccessToken
RefreshAccessToken
steps.oauth.v2.InvalidRequest 400 This error name is used for multiple different kinds of errors, typically for missing or incorrect parameters sent in the request. If <GenerateResponse> is set to false, use fault variables (described below) to retrieve details about the error, such as the fault name and cause. GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.InvalidAccessToken 401 The authorization header does not have the word Bearer, which is required. For example: Authorization: Bearer your_access_token VerifyAccessToken
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401

The currently executing API proxy or operation is not in the Product associated with the access token.

Tips: Be sure that the product associated with the access token is configured correctly. For example, if you use wildcards in resource paths, be sure the wildcards are being used correctly. See Managing API products for details.

See also Oauth2.0 Access Token Verification throws "Invalid API call as no apiproduct match found" error for more guidance on causes for this error.

VerifyAccessToken
steps.oauth.v2.InvalidClientIdentifier 500

This error name is returned when the <GenerateResponse> property of the policy is set to false and the client ID sent in the request is invalid. Check to be sure you are using the correct client key and secret values for the Developer App associated with your proxy. Typically, these values are sent as a Base64 encoded Basic Authorization header.

GenerateAccessToken
RefreshAccessToken

steps.oauth.v2.InvalidParameter 500 The policy must specify either an access token or an authorization code, but not both. GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.InvalidTokenType 500 The <Tokens>/<Token> element requires you to specify the token type (for example, refreshtoken). If the client passes the wrong type, this error is thrown. ValidateToken
InvalidateToken
steps.oauth.v2.MissingParameter 500 The response type is token, but no grant types are specified. GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.UnSupportedGrantType 500

The client specified a grant type that is unsupported by the policy (not listed in the <SupportedGrantTypes> element).

GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken

JWT token-specific runtime errors

Runtime error codes and descriptions for JWT auth token flows depend on the OAuth2 flow context:

Error codes for JWT token generation and refresh flows

For OAuth2 flows that generate or refresh JWT tokens, error responses adhere to the error responses specified in RFC6749. For details, see Section 5.2 Error Response.

Error codes for the token verification flow

The error codes listed in the following table apply to VerifyAccessToken operation only.

Fault code HTTP status Cause Thrown by operations
oauth.v2.JWTSigningFailed 401 The policy was unable to sign the JWT.

GenerateJWTAccessToken

oauth.v2.InvalidValueForJWTAlgorithm 401 This occurs when the algorithm is not present in the JWT access token or when the value is not supported.

GenerateJWTAccessToken
VerifyJWTAccessToken

oauth.v2.InsufficientKeyLength 401 In Generation of JWT, for a key less than the minimum size for the HS384 or HS512 algorithms

GenerateJWTAccessToken
VerifyJWTAccessToken

oauth.v2.JWTAlgorithmMismatch 401 The algorithm specified in the Generate policy did not match the one expected in the Verify policy. The algorithms specified must match.

VerifyJWTAccessToken

oauth.v2.JWTDecodingFailed 401 The policy was unable to decode the JWT. The JWT is possibly corrupted.

VerifyJWTAccessToken

oauth.v2.MissingMandatoryClaimsInJWT 401 Occurs when the required claims are not present in the Jwt Access token

VerifyJWTAccessToken

oauth.v2.InvalidJWTSignature 401 This occurs when the signature of JWT access token could not be verified or when the signature is invalid.

VerifyJWTAccessToken

oauth.v2.InvalidTypeInJWTHeader 401 Occurs when the JWT's type is not at+Jwt

VerifyJWTAccessToken

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause
InvalidValueForExpiresIn

For the <ExpiresIn> element, valid values are positive integers.

InvalidValueForRefreshTokenExpiresIn For the <RefreshTokenExpiresIn> element, valid values are positive integers.
InvalidGrantType An invalid grant type is specified in the <SupportedGrantTypes> element. See the policy reference for a list of valid types.
ExpiresInNotApplicableForOperation Be sure that the operations specified in the <Operations> element support expiration. For example, the VerifyToken operation does not.
RefreshTokenExpiresInNotApplicableForOperation Be sure that the operations specified in the <Operations> element support refresh token expiration. For example, the VerifyToken operation does not.
GrantTypesNotApplicableForOperation Be sure that the grant types specified in <SupportedGrantTypes> are supported for the specified operation.
OperationRequired

You must specify an operation in this policy using the <Operation> element.

InvalidOperation

You must specify a valid operation in this policy using the <Operation> element.

TokenValueRequired You must specify a token <Token> value in the <Tokens> element.

JWT token-specific deployment errors

These deployment errors are specific to policies that use JWT token operations.

Error name Cause
InvalidValueForAlgorithm The algorithm specified in the <Algorithm> element is not among the list of available algorithms or is not present.
MissingKeyConfiguration The required <SecretKey>, <PrivateKey>, or <PublicKey> elements are missing, depending on which algorithm is used.
EmptyValueElementForKeyConfiguration The required child element <Value> is not defined in the <PrivateKey>, <PublicKey>, or <SecretKey> elements
InvalidKeyConfiguration The <PrivateKey> element is not used with RSA family algorithms or the <SecretKey> element is not used with HS Family algorithms.
EmptyRefAttributeForKeyconfiguration The ref attribute of the child element <Value> of the <PrivateKey>, <PublicKey> or <SecretKey> elements is empty.
InvalidVariableNameForKey The flow variable name specified in the ref attribute of the child element <Value> of the <PrivateKey>, <PublicKey> or <SecretKey> elements does not contain the private prefix.

Fault variables

These variables are set when this policy triggers an error at runtime.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name = "InvalidRequest"
oauthV2.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. oauthV2.GenerateAccesstoken.failed = true
oauthV2.policy_name.fault.name policy_name is the user-specified name of the policy that threw the fault. oauthV2.GenerateAccesstoken.fault.name = InvalidRequest
oauthV2.policy_name.fault.cause policy_name is the user-specified name of the policy that threw the fault. oauthV2.GenerateAccesstoken.cause = Required param : grant_type

Example error response

These responses are sent back to the client if the <GenerateResponse> element is true.

If <GenerateResponse> is true, the policy returns errors in this format for operations that generate tokens and codes. For a complete list, see see OAuth HTTP error response reference.

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

If <GenerateResponse> is true, the policy returns errors in this format for verify and validate operations. For a complete list, see see OAuth HTTP error response reference.

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

Example fault rule

<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 액세스 토큰 확인에서 'apiproduct matches not apiapi found' 오류 발생을 참조하세요.
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 액세스 토큰 확인에서 'Invalid API call as no apiproduct match found' 오류 발생을 참조하세요.

배포 오류

배포 오류에 대한 자세한 내용은 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 정책

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
steps.oauth.v2.invalid_access_token 401 The access token sent to the policy is invalid.
steps.oauth.v2.invalid_request-authorization_code_invalid 401 The authorization code sent to the policy is invalid.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Please see Oauth2.0 Access Token Verification throws "Invalid API call as no apiproduct match found" error for information about troubleshooting this error.

Deployment errors

Refer to the message reported in the UI for information about deployment errors.

Fault variables

These variables are set when this policy triggers an error at runtime.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. oauthV2.DeleteTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name is the user-specified name of the policy that threw the fault. oauthV2.DeleteTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name is the user-specified name of the policy that threw the fault. oauthV2.DeleteTokenInfo.cause = Invalid Access Token

Example error response

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

Example fault rule

<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>

할당량 정책

이 섹션에서는 반환되는 오류 코드 및 오류 메시지와 이 정책이 오류를 트리거할 때 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 프록시 배포가 실패합니다. 지원되는 시간 단위는 minute, hour, day, week, month입니다.
InvalidQuotaType <Quota> 요소의 type 속성에 의해 지정된 할당량 유형이 잘못된 경우 API 프록시 배포가 실패합니다. 지원되는 할당량 유형은 default, calendar, flexi, rollingwindow입니다.
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 프록시 배포가 실패합니다. timeunit second는 분산 할당량에 유효하지 않습니다.
InvalidSynchronizeIntervalForAsyncConfiguration Quota 정책의 <AsynchronousConfiguration> 요소 내에 있는 <SyncIntervalInSeconds> 요소에 지정된 값이 0 미만이면 API 프록시 배포가 실패합니다.
InvalidAsynchronizeConfigurationForSynchronousQuota <AsynchronousConfiguration> 요소의 값이 Quota 정책의 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 프록시 배포가 실패합니다.

RaiseFaultpolicy

이 섹션에서는 반환되는 오류 코드 및 오류 메시지와 이 정책이 오류를 트리거할 때 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 정책

This section describes the error codes and messages returned and fault variables set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. If you want to capture an error and raise your own custom error, set the continueOnError="true" attribute on the policy root element. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Error Code Message
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}

Deployment errors

Error Code Message Fix
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 variables

These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the table above. fault.name Matches "ThreatDetected"
regularexpressionprotection.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

SAMLAssertion 정책

이 섹션에서는 반환되는 오류 코드 및 오류 메시지와 이 정책이 오류를 트리거할 때 Apigee에서 설정한 오류 변수를 설명합니다. 오류를 처리하기 위해 오류 규칙을 개발 중인 경우, 이 정보는 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항오류 처리를 참조하세요.

배포 오류

이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.

오류 이름 원인 수정
SourceNotConfigured ValidateSAMLAssertion 정책의 다음 요소 중 하나 이상이 정의되어 있지 않거나 비어 있습니다(<Source>, <XPath>, <Namespaces>, <Namespace>).
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 어설션 정책 구성을 검증하기 위한 오류 프리픽스는 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 유형이 아닙니다. 예를 들어 응답 유형인 경우 이 오류가 표시됩니다.
googletoken.EmptyIDTokenAudience 500

<GoogleIDToken>은 사용 설정되지만 useTargetUrl은 false로 설정되며 오류가 발생할 때 직접 또는 참조를 통해 <Audience>에 값이 제공되지 않습니다.

messaging.adaptors.http.filter.GoogleTokenGenerationFailure 500 이 오류는 API 프록시가 <Authentication> 요소로 구성된 경우에 발생할 수 있습니다. 원인은 다음과 같습니다.
  • 서비스 계정이 프록시로 배포되었습니다.
    • 프로젝트에 없음
    • 중지됨
    • (Apigee Hybrid만 해당) apigee-runtime 서비스 계정에 대한 roles/iam.serviceAccountTokenCreator 역할이 부여되지 않았습니다.
  • IAMCredentials API가 apigee-runtime 서비스 계정의 소스 프로젝트에서 중지됩니다.
  • <GoogleAccessToken> 요소가 사용되고 잘못된 범위가 하나 이상 제공됩니다. 예를 들어 오타나 빈 범위가 있는지 확인합니다.
  • Apigee Hybrid의 경우 문제 디버깅에 도움이 될 수 있는 보다 자세한 오류 메시지를 찾으려면 런타임 컨테이너 로그에서 GoogleTokenGenerationFailure를 찾습니다.

    배포 오류

    이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.

    오류 이름 원인 수정
    URLMissing <HTTPTargetConnection> 내의 <URL> 요소가 없거나 비어 있습니다.
    ConnectionInfoMissing 이 오류는 정책에 <HTTPTargetConnection> 또는 <LocalTargetConnection> 요소가 없는 경우 발생합니다.
    InvalidTimeoutValue 이 오류는 <Timeout> 값이 음수이거나 0이면 발생합니다.
    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 정책

    This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

    Runtime errors

    These errors can occur when the policy executes.

    Fault code HTTP status Cause Fix
    steps.messagevalidation.SourceMessageNotAvailable 500

    This error occurs if a variable specified in the <Source> element of the policy is either:

    • out of scope (not available in the specific flow where the policy is being executed)
    • or
    • can't be resolved (is not defined)
    steps.messagevalidation.NonMessageVariable 500

    This error occurs if the <Source> element in the SOAPMessageValidation policy is set to a variable which is not of type message.

    Message type variables represent entire HTTP requests and responses. The built-in Apigee flow variables request, response, and message are of type message. To learn more about message variables, see the Variables reference.

    steps.messagevalidation.Failed 500 This error occurs if the SOAPMessageValidation policy fails to validate the input message payload against the XSD schema or WSDL definition. It will also occur if there is malformed JSON or XML in the payload message.

    Deployment errors

    These errors can occur when you deploy a proxy containing this policy.

    Error name Cause Fix
    InvalidResourceType The <ResourceURL> element in the SOAPMessageValidation policy is set to a resource type not supported by the policy.
    ResourceCompileFailed The resource script referenced in the <ResourceURL> element of the SOAPMessageValidation policy contains an error that prevents it from compiling.
    RootElementNameUnspecified The <Element> element in the SOAPMessageValidation policy does not contain the root element's name.
    InvalidRootElementName The <Element> element in the SOAPMessageValidation policy contains a root element name that does not adhere to XML rules for valid element naming.

    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 정책

    This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

    Runtime errors

    These errors can occur when the policy executes.

    Fault code HTTP status Cause
    keymanagement.service.consumer_key_missing_api_product_association 400

    The application credential is missing an API product association. Please associate the key's application with an API product. Note that this applies for all application types, such as developer apps and AppGroup apps.

    keymanagement.service.DeveloperStatusNotActive 401

    The developer who created the Developer App that has the API key you are using has an inactive status. When an App Developer's status is set to inactive, any Developer Apps created by that developer are deactivated. An admin user with appropriate permissions (such as Organization Administrator) can change a developer's status in the following ways:

    keymanagement.service.invalid_client-app_not_approved 401 The Developer App associated with the API key is revoked. A revoked app cannot access any API products and cannot invoke any API managed by Apigee. An org admin can change the status of a Developer App using the Apigee API. See Generate Key Pair or Update Developer App Status.
    oauth.v2.FailedToResolveAPIKey 401 The policy expects to find the API key in a variable that is specified in the policy's <APIKey> element. This error arises when the expected variable does not exist (it cannot be resolved).
    oauth.v2.InvalidApiKey 401 An API key was received by Apigee, but it is invalid. When Apigee looks up the key in its database, it must exactly match the one that was sent in the request. If the API worked previously, make sure the key was not regenerated. If the key was regenerated, you will see this error if you try to use the old key. For details, see Controlling access to your APIs by registering apps.
    oauth.v2.InvalidApiKeyForGivenResource 401 An API key was received by Apigee, and it is valid; however, it does not match an approved key in the Developer App associated with your API proxy through a Product.

    Deployment errors

    These errors can occur when you deploy a proxy containing this policy.

    Error name Cause
    SpecifyValueOrRefApiKey The <APIKey> element does not have a value or key specified.

    Fault variables

    These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.

    Variables Where Example
    fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "FailedToResolveAPIKey"
    oauthV2.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. oauthV2.VK-VerifyAPIKey.failed = true

    Example error responses

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

    Example fault rule

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

    VerifyIAM 정책

    This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

    Runtime errors

    These errors can occur when the policy executes.

    Fault code HTTP status Cause
    steps.verifyiam.CredentialSourceRefUnresolved 400 Flow variable provided inside credential source could not be resolved.
    steps.verifyiam.CredentialValueNotProvided 400 Credential not found. If the credential source reference is not provided, we look at the default place like authorization header.
    steps.verifyiam.Forbidden 403 Request could not be forwarded due to lack of sufficient permissions or missing access scopes or any other related issues.
    steps.verifyiam.MiscellaneousAuthorizationConfigurationError 500 An issue with the authentication request to IAM. The API producer needs to fix this error based on details in the error response.
    steps.verifyiam.Unauthorized 401 Problem with the credential, such as the value being invalid or expired.
    steps.verifyiam.UnexpectedAuthorizationInfrastructureError 500 Internal error.

    Deployment errors

    This policy does not return any policy-specific deployment errors.

    Fault variables

    These variables are set when this policy triggers an error at runtime.

    Variables Where Example
    fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name="Unauthorized"
    verifyiam.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. verifyiam.Verify-IAMToken.failed = true

    JWS 정책 인증

    이 섹션에서는 반환되는 오류 코드 및 오류 메시지와 이 정책이 오류를 트리거할 때 Apigee에서 설정한 오류 변수를 설명합니다. 오류를 처리하기 위해 오류 규칙을 개발 중인 경우, 이 정보는 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항오류 처리를 참조하세요.

    런타임 오류

    이러한 오류는 정책이 실행될 때 발생할 수 있습니다.

    오류 코드 HTTP 상태 발생 상황
    steps.jws.AlgorithmInTokenNotPresentInConfiguration 401 확인 정책에 알고리즘이 여러 개 있으면 발생합니다.
    steps.jws.AlgorithmMismatch 401 Generate 정책에 의해 헤더에 지정된 알고리즘이 Verify 정책에서 예상한 알고리즘과 일치하지 않습니다. 지정된 알고리즘이 일치해야 합니다.
    steps.jws.ContentIsNotDetached 401 <DetachedContent>는 JWS에 분리된 콘텐츠 페이로드가 포함되어 있지 않으면 지정됩니다.
    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 헤더의 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 정책

    This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

    Runtime errors

    These errors can occur when the policy executes.

    Fault code HTTP status Occurs when
    steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Occurs when the verification policy has multiple algorithms.
    steps.jwt.AlgorithmMismatch 401 The algorithm specified in the Generate policy did not match the one expected in the Verify policy. The algorithms specified must match.
    steps.jwt.FailedToDecode 401 The policy was unable to decode the JWT. The JWT is possibly corrupted.
    steps.jwt.GenerationFailed 401 The policy was unable to generate the JWT.
    steps.jwt.InsufficientKeyLength 401 For a key less than 32 bytes for the HS256 algorithm, less than 48 bytes for the HS386 algortithm, and less than 64 bytes for the HS512 algorithm.
    steps.jwt.InvalidClaim 401 For a missing claim or claim mismatch, or a missing header or header mismatch.
    steps.jwt.InvalidConfiguration 401 Both the <Algorithm> and <Algorithms> elements are present.
    steps.jwt.InvalidCurve 401 The curve specified by the key is not valid for the Elliptic Curve algorithm.
    steps.jwt.InvalidIterationCount 401 The iteration count that was used in the encrypted JWT is not equal to the iteration count specified in the VerifyJWT policy configuration. This applies only to JWT that use <PasswordKey>.
    steps.jwt.InvalidJsonFormat 401 Invalid JSON found in the header or payload.
    steps.jwt.InvalidKeyConfiguration 401 JWKS in the <PublicKey> element is invalid. The reason could be that the JWKS URI endpoint is not reachable from the Apigee instance. Test connectivity to the endpoint by creating a passthrough proxy and using the JWKS endpoint as a target.
    steps.jwt.InvalidSaltLength 401 The salt length that was used in the encrypted JWT is not equal to the salt length specified in the VerifyJWT policy configuration. This applies only to JWT that use <PasswordKey>.
    steps.jwt.InvalidPasswordKey 401 The specified key specified did not meet the requirements.
    steps.jwt.InvalidPrivateKey 401 The specified key specified did not meet the requirements.
    steps.jwt.InvalidPublicKey 401 The specified key specified did not meet the requirements.
    steps.jwt.InvalidSecretKey 401 The specified key specified did not meet the requirements.
    steps.jwt.InvalidToken 401 This error occurs when the JWT signature verification fails.
    steps.jwt.JwtAudienceMismatch 401 The audience claim failed on token verification.
    steps.jwt.JwtIssuerMismatch 401 The issuer claim failed on token verification.
    steps.jwt.JwtSubjectMismatch 401 The subject claim failed on token verification.
    steps.jwt.KeyIdMissing 401 The Verify policy uses a JWKS as a source for public keys, but the signed JWT does not include a kid property in the header.
    steps.jwt.KeyParsingFailed 401 The public key could not be parsed from the given key information.
    steps.jwt.NoAlgorithmFoundInHeader 401 Occurs when the JWT contains no algorithm header.
    steps.jwt.NoMatchingPublicKey 401 The Verify policy uses a JWKS as a source for public keys, but the kid in the signed JWT is not listed in the JWKS.
    steps.jwt.SigningFailed 401 In GenerateJWT, for a key less than the minimum size for the HS384 or HS512 algorithms
    steps.jwt.TokenExpired 401 The policy attempts to verify an expired token.
    steps.jwt.TokenNotYetValid 401 The token is not yet valid.
    steps.jwt.UnhandledCriticalHeader 401 A header found by the Verify JWT policy in the crit header is not listed in KnownHeaders.
    steps.jwt.UnknownException 401 An unknown exception occurred.
    steps.jwt.WrongKeyType 401 Wrong type of key specified. For example, if you specify an RSA key for an Elliptic Curve algorithm, or a curve key for an RSA algorithm.

    Deployment errors

    These errors can occur when you deploy a proxy containing this policy.

    Error name Cause Fix
    InvalidNameForAdditionalClaim The deployment will fail if the claim used in the child element <Claim> of the <AdditionalClaims> element is one of the following registered names: kid, iss, sub, aud, iat, exp, nbf, or jti.
    InvalidTypeForAdditionalClaim If the claim used in the child element <Claim> of the <AdditionalClaims> element is not of type string, number, boolean, or map, the deployment will fail.
    MissingNameForAdditionalClaim If the name of the claim is not specified in the child element <Claim> of the <AdditionalClaims> element, the deployment will fail.
    InvalidNameForAdditionalHeader This error ccurs when the name of the claim used in the child element <Claim> of the <AdditionalClaims> element is either alg or typ.
    InvalidTypeForAdditionalHeader If the type of claim used in the child element <Claim> of the <AdditionalClaims> element is not of type string, number, boolean, or map, the deployment will fail.
    InvalidValueOfArrayAttribute This error occurs when the value of the array attribute in the child element <Claim> of the <AdditionalClaims> element is not set to true or false.
    InvalidValueForElement If the value specified in the <Algorithm> element is not a supported value, the deployment will fail.
    MissingConfigurationElement This error will occur if the <PrivateKey> element is not used with RSA family algorithms or the <SecretKey> element is not used with HS Family algorithms.
    InvalidKeyConfiguration If the child element <Value> is not defined in the <PrivateKey> or <SecretKey> elements, the deployment will fail.
    EmptyElementForKeyConfiguration If the ref attribute of the child element <Value> of the <PrivateKey> or <SecretKey> elements is empty or unspecified, the deployment will fail.
    InvalidConfigurationForVerify This error occurs if the <Id> element is defined within the <SecretKey> element.
    InvalidEmptyElement This error occurs if the <Source> element of the Verify JWT policy is empty. If present, it must be defined with an Apigee flow variable name.
    InvalidPublicKeyValue If the value used in the child element <JWKS> of the <PublicKey> element does not use a valid format as specified in RFC 7517, the deployment will fail.
    InvalidConfigurationForActionAndAlgorithm If the <PrivateKey> element is used with HS Family algorithms or the <SecretKey> element is used with RSA Family algorithms, the deployment will fail.

    오류 변수

    이러한 변수는 런타임 오류가 발생하면 설정됩니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항을 참조하세요.

    변수 장소
    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> 요소에 지정된 메시지 변수가 다음 중 하나일 때 발생합니다.
    • 범위를 벗어난 경우(정책이 실행 중인 특정 흐름에서 사용할 수 없음)
    • 유효한 값 request, response 또는 message 중 하나가 아님
    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 정책

    This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

    Runtime errors

    These errors can occur when the policy executes.

    Fault code HTTP status Cause Fix
    steps.xmltojson.ExecutionFailed ExecutionFailed This error occurs when the input payload (XML) is empty or the input XML is invalid or malformed.
    steps.xmltojson.InCompatibleTypes ExecutionFailed This error occurs if the type of the variable defined in the <Source> element and the <OutputVariable> element are not the same. It is mandatory that the type of the variables contained within the <Source> element and the <OutputVariable> element matches.
    steps.xmltojson.InvalidSourceType ExecutionFailed This error occurs if the type of the variable used to define the <Source> element is invalid.The valid types of variable are message and string.
    steps.xmltojson.OutputVariableIsNotAvailable ExecutionFailed This error occurs if the variable specified in the <Source> element of the XML to JSON policy is of type string and the <OutputVariable> element is not defined. The <OutputVariable> element is mandatory when the variable defined in the <Source> element is of type string.
    steps.xmltojson.SourceUnavailable ExecutionFailed This error occurs if the message variable specified in the <Source> element of the XML to JSON policy is either:
    • Out of scope (not available in the specific flow where the policy is being executed) or
    • Can't be resolved (is not defined)

    Deployment errors

    These errors can occur when you deploy a proxy containing this policy.

    Error name Cause Fix
    EitherOptionOrFormat If one of the elements <Options> or <Format> is not declared in the XML to JSON Policy, then the deployment of the API proxy fails.
    UnknownFormat If the <Format> element within the XML to JSON policy has an unknown format defined, then the deployment of the API proxy fails. Predefined formats include: xml.com, yahoo, google, and badgerFish.

    Fault variables

    These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.

    Variables Where Example
    fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name = "SourceUnavailable"
    xmltojson.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. xmltojson.XMLtoJSON-1.failed = true

    Example error response

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

    Example fault rule

    <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 정책

    Runtime errors

    These errors can occur when the policy executes.

    Fault code HTTP status Cause Fix
    steps.xsl.XSLSourceMessageNotAvailable 500 This error occurs if the message or string variable specified in the <Source> element of the XSLTransform policy is either out of scope (not available in the specific flow where the policy is being executed) or can't be resolved (is not defined).
    steps.xsl.XSLEvaluationFailed 500 This error occurs if the input XML payload is unavailable/malformed or the XSLTransform policy fails/is unable to transform the input XML file based on the transformation rules provided in the XSL file. There could be many different causes for the XSLTransform policy to fail. The reason for failure in the error message will provide more information on the cause.

    Deployment errors

    These errors can occur when you deploy a proxy containing this policy.

    Error name Cause Fix
    XSLEmptyResourceUrl If the <ResourceURL> element in the XSLTransform policy is empty, then the deployment of the API proxy fails.
    XSLInvalidResourceType If the resource type specified in the <ResourceURL> element of the XSLTransform policy is not of type xsl, then the deployment of the API proxy fails.