Ссылка на ошибку политики

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Политика контроля доступа

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
accesscontrol.IPDeniedAccess 403 IP-адрес клиента или IP-адрес, переданный в запросе API, соответствует IP-адресу, указанному в элементе <SourceAddress> в элементе <MatchRule> политики контроля доступа, и установлен атрибут action элемента <MatchRule> DENY .

Переменные неисправности

Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Переменные, относящиеся к ошибкам политики .

Переменные Где Пример
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":"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] Н/Д Используемый тип объекта должен быть одним из поддерживаемых типов .

Политика назначения сообщений

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.assignmessage.SetVariableFailed 500 Политике не удалось установить переменную. См. строку ошибки, чтобы узнать имя неразрешенной переменной.
steps.assignmessage.VariableOfNonMsgType 500

Эта ошибка возникает, если атрибуту source в элементе <Copy> присвоена переменная, которая не имеет типа message .

Переменные типа сообщения представляют собой все HTTP-запросы и ответы. Встроенные переменные потока Edge request , response и message имеют тип message. Дополнительные сведения о переменных сообщения см. в справочнике по переменным .

steps.assignmessage.UnresolvedVariable 500

Эта ошибка возникает, если переменная, указанная в политике назначения сообщений:

  • вне области действия (недоступно в конкретном потоке, в котором выполняется политика)
  • или
  • не может быть решено (не определено)

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidIndex Если индекс, указанный в элементах <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="VariableOfNonMsgType"></faultrule><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>

Политика базовой аутентификации

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус 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>

Политика ConcurrentRateLimit

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Происходит, когда
policies.concurrentratelimit.ConcurrentRatelimtViolation 503

Превышено соединение ConcurrentRatelimit. Ограничение на количество подключений: {0}

Примечание. Код неисправности, показанный слева, верен, хотя и содержит опечатку («лимит»). Обязательно используйте код точно так, как показано здесь, при создании правил ошибок, чтобы перехватить эту ошибку.

Ошибки развертывания

Название ошибки Происходит, когда
InvalidCountValue Указано неверное значение счетчика ConcurrentRatelimit.
ConcurrentRatelimitStepAttachment\
NotAllowedAtProxyEndpoint
Вложение политики одновременного ограничения скорости {0} не разрешено в путях запроса/ответа/ошибки прокси-сервера. Эту политику необходимо разместить на целевой конечной точке.
ConcurrentRatelimitStepAttachment\
MissingAtTargetEndpoint
Вложение политики ограничения параллельной скорости {0} отсутствует в целевых путях запроса/ответа/ошибки. Эту политику необходимо поместить в предварительный поток целевого запроса, постпоток целевого ответа и DefaultFaultRule.
InvalidTTLForMessageTimeOut ConcurrentRatelimit неверное значение ttl, указанное для тайм-аута сообщения. Это должно быть целое положительное число.

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name Matches "ConcurrentRatelimtViolation"

Примечание. Код ошибки, показанный в примере, правильный, хотя и содержит орфографическую ошибку («limt»). Обязательно используйте код точно так, как показано здесь, при создании правил ошибок, чтобы перехватить эту ошибку.

concurrentratelimit. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. concurrentratelimit.CRL-RateLimitPolicy.failed = true

Пример ответа об ошибке

Если предел скорости превышен, политика возвращает клиенту только HTTP-статус 503.

Пример правила неисправности

<faultrule name="VariableOfNonMsgType"></faultrule><FaultRules>
    <FaultRule name="Quota Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "ConcurrentRatelimtViolation") </Condition>
        </Step>
        <Condition>concurrentratelimit.CRL-RateLimitPolicy.failed=true</Condition>
    </FaultRule>
</FaultRules>

Политика декодированияJWS

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус 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>

Политика декодированияJWT

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникать при выполнении политики.

Код неисправности Статус 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 "TokenExpired"
JWT.failed Все политики JWT устанавливают одну и ту же переменную в случае сбоя. JWT.failed = true

Пример ответа об ошибке

Коды ошибок политики JWT

Для обработки ошибок лучше всего перехватывать часть errorcode в ответе на ошибку. Не полагайтесь на текст в faultstring , поскольку он может измениться.

Пример правила неисправности

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

Политика извлечения переменных

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.extractvariables.ExecutionFailed 500

Эта ошибка возникает, когда:

  • Входные полезные данные (JSON, XML) пусты.
  • Входные данные (JSON, XML и т. д.), переданные в политику, недействительны или имеют неверный формат.
steps.extractvariables.ImmutableVariable 500 Переменная, используемая в политике, является неизменяемой. Политике не удалось установить эту переменную.
steps.extractvariables.InvalidJSONPath 500 Эта ошибка возникает, если в элементе JSONPath политики используется недопустимый путь JSON. Например, если полезные данные JSON не имеют объекта Name , но вы указываете Name в качестве пути в политике, возникает эта ошибка.
steps.extractvariables.JsonPathParsingFailure 500 Эта ошибка возникает, когда политике не удается проанализировать путь JSON и извлечь данные из переменной потока, указанной в элементе Source . Обычно это происходит, если переменная потока, указанная в элементе Source , не существует в текущем потоке.
steps.extractvariables.SetVariableFailed 500 Эта ошибка возникает, если политика не может установить значение переменной. Ошибка обычно возникает, если вы пытаетесь присвоить значения нескольким переменным, имена которых начинаются с одних и тех же слов во вложенном формате, разделенном точками.
steps.extractvariables.SourceMessageNotAvailable 500 Эта ошибка возникает, если переменная сообщения , указанная в элементе Source политики:
  • Вне области действия (недоступно в конкретном потоке, в котором выполняется политика) или
  • Не может быть решено (не определено)
steps.extractvariables.UnableToCast 500 Эта ошибка возникает, если политике не удалось преобразовать извлеченное значение в переменную. Обычно это происходит, если вы пытаетесь установить значение одного типа данных в переменную другого типа данных.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
NothingToExtract Если в политике нет элементов URIPath , QueryParam , Header , FormParam , XMLPayload или JSONPayload , развертывание прокси-сервера API завершается неудачей, поскольку извлекать нечего.
NONEmptyPrefixMappedToEmptyURI Эта ошибка возникает, если у политики есть префикс, определенный в элементе Namespace под элементом XMLPayload , но URI не определен.
DuplicatePrefix Эта ошибка возникает, если политика имеет один и тот же префикс, определенный более одного раза в элементе Namespace под элементом XMLPayload .
NoXPathsToEvaluate Если в политике нет элемента XPath в элементе XMLPayload , развертывание прокси-сервера API завершается с ошибкой.
EmptyXPathExpression Если политика содержит пустое выражение XPath в элементе XMLPayload , развертывание прокси-сервера API завершается неудачно.
NoJSONPathsToEvaluate Если в политике нет элемента JSONPath внутри элемента JSONPayload , развертывание прокси-сервера API завершается с ошибкой.
EmptyJSONPathExpression Если политика содержит пустое выражение XPath в элементе XMLPayload , развертывание прокси-сервера API завершается неудачей.
MissingName Если политика не имеет атрибута name ни в одном из элементов политики, таких как QueryParam , Header , FormParam или Variable , где он необходим, то развертывание прокси-сервера API не удастся.
PatternWithoutVariable Если в политике не указана переменная в элементе Pattern , развертывание прокси-сервера API не удастся. Элементу Pattern требуется имя переменной, в которой будут храниться извлеченные данные.
CannotBeConvertedToNodeset Если в политике есть выражение XPath , в котором тип Variable определен как nodeset , но это выражение невозможно преобразовать в nodeset, то развертывание прокси-сервера API завершается неудачно.
JSONPathCompilationFailed Политике не удалось скомпилировать указанный путь JSON.
InstantiationFailed Не удалось реализовать политику.
XPathCompilationFailed Если префикс или значение, используемые в элементе XPath , не являются частью ни одного из объявленных пространств имен в политике, развертывание прокси-сервера API завершается неудачей.
InvalidPattern Если определение элемента Pattern недопустимо в любом из элементов, таких как URIPath , QueryParam , Header , FormParam , XMLPayload или JSONPayload в политике, то развертывание прокси-сервера 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>

Создать политику JWS

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Происходит, когда
steps.jws.GenerationFailed 401 Политике не удалось создать JWS.
steps.jws.InsufficientKeyLength 401 Для ключа менее 32 байт для алгоритма HS256
steps.jws.InvalidClaim 401 В случае отсутствия утверждения или несоответствия утверждения, а также отсутствия заголовка или несоответствия заголовка.
steps.jws.InvalidCurve 401 Кривая, заданная ключом, недопустима для алгоритма эллиптической кривой.
steps.jws.InvalidJsonFormat 401 В заголовке JWS обнаружен недопустимый JSON.
steps.jws.InvalidPayload 401 Полезная нагрузка JWS недействительна.
steps.jws.InvalidSignature 401 <DetachedContent> опущен, и JWS имеет отсоединенную полезную нагрузку контента.
steps.jws.KeyIdMissing 401 Политика Verify использует JWKS в качестве источника открытых ключей, но подписанный JWS не включает свойство kid в заголовок.
steps.jws.KeyParsingFailed 401 Открытый ключ не удалось проанализировать из данной ключевой информации.
steps.jws.MissingPayload 401 Полезная нагрузка JWS отсутствует.
steps.jws.NoAlgorithmFoundInHeader 401 Происходит, когда JWS пропускает заголовок алгоритма.
steps.jws.SigningFailed 401 В GenerateJWS для ключа размером меньше минимального для алгоритмов HS384 или HS512.
steps.jws.UnknownException 401 Произошло неизвестное исключение.
steps.jws.WrongKeyType 401 Указан неправильный тип ключа. Например, если вы укажете ключ RSA для алгоритма эллиптической кривой или ключ кривой для алгоритма RSA.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Происходит, когда
InvalidAlgorithm Единственные допустимые значения: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512.

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

Другие возможные ошибки развертывания.

Переменные неисправности

Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name Matches "TokenExpired"
JWS.failed Все политики JWS устанавливают одну и ту же переменную в случае сбоя. jws.JWS-Policy.failed = true

Пример ответа об ошибке

Для обработки ошибок лучше всего перехватывать часть errorcode в ответе на ошибку. Не полагайтесь на текст в faultstring , поскольку он может измениться.

Пример правила неисправности

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

Создать политику JWT

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Происходит, когда
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Происходит, когда политика проверки имеет несколько алгоритмов.
steps.jwt.AlgorithmMismatch 401 Алгоритм, указанный в политике «Создать», не соответствует ожидаемому в политике «Проверка». Указанные алгоритмы должны совпадать.
steps.jwt.FailedToDecode 401 Политике не удалось декодировать JWT. Возможно, JWT поврежден.
steps.jwt.GenerationFailed 401 Политике не удалось создать JWT.
steps.jwt.InsufficientKeyLength 401 Для ключа менее 32 байт для алгоритма HS256, менее 48 байт для алгоритма HS386 и менее 64 байт для алгоритма HS512.
steps.jwt.InvalidClaim 401 В случае отсутствия утверждения или несоответствия утверждения, а также отсутствия заголовка или несоответствия заголовка.
steps.jwt.InvalidCurve 401 Кривая, заданная ключом, недопустима для алгоритма эллиптической кривой.
steps.jwt.InvalidJsonFormat 401 В заголовке или полезной нагрузке обнаружен недопустимый JSON.
steps.jwt.InvalidToken 401 Эта ошибка возникает, когда проверка подписи JWT не удалась.
steps.jwt.JwtAudienceMismatch 401 Заявка на аудиторию не прошла проверку токена.
steps.jwt.JwtIssuerMismatch 401 Заявление эмитента не прошло проверку токена.
steps.jwt.JwtSubjectMismatch 401 Субъект претензии не прошел проверку токена.
steps.jwt.KeyIdMissing 401 Политика Verify использует JWKS в качестве источника открытых ключей, но подписанный JWT не включает в заголовок свойство kid .
steps.jwt.KeyParsingFailed 401 Открытый ключ не удалось проанализировать из данной ключевой информации.
steps.jwt.NoAlgorithmFoundInHeader 401 Происходит, когда JWT не содержит заголовка алгоритма.
steps.jwt.NoMatchingPublicKey 401 Политика Verify использует JWKS в качестве источника открытых ключей, но kid в подписанном JWT не указан в JWKS.
steps.jwt.SigningFailed 401 В GenerateJWT для ключа размером меньше минимального для алгоритмов HS384 или HS512.
steps.jwt.TokenExpired 401 Политика пытается проверить токен с истекшим сроком действия.
steps.jwt.TokenNotYetValid 401 Токен еще не действителен.
steps.jwt.UnhandledCriticalHeader 401 Заголовок, обнаруженный политикой Verify JWT в crit заголовке, не указан в KnownHeaders .
steps.jwt.UnknownException 401 Произошло неизвестное исключение.
steps.jwt.WrongKeyType 401 Указан неправильный тип ключа. Например, если вы укажете ключ RSA для алгоритма эллиптической кривой или ключ кривой для алгоритма RSA.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidNameForAdditionalClaim Развертывание завершится неудачно, если утверждение, используемое в дочернем элементе <Claim> элемента <AdditionalClaims> , имеет одно из следующих зарегистрированных имен: kid , iss , sub , aud , iat , exp , nbf или jti .
InvalidTypeForAdditionalClaim Если утверждение, используемое в дочернем элементе <Claim> элемента <AdditionalClaims> , не имеет типа string , number , boolean или map , развертывание завершится неудачно.
MissingNameForAdditionalClaim Если имя утверждения не указано в дочернем элементе <Claim> элемента <AdditionalClaims> , развертывание завершится неудачей.
InvalidNameForAdditionalHeader Эта ошибка возникает, когда имя утверждения, используемое в дочернем элементе <Claim> элемента <AdditionalClaims> , имеет значение alg или typ .
InvalidTypeForAdditionalHeader Если тип утверждения, используемого в дочернем элементе <Claim> элемента <AdditionalClaims> , не относится к типу string , number , boolean или map , развертывание завершится неудачей.
InvalidValueOfArrayAttribute Эта ошибка возникает, когда для значения атрибута массива в дочернем элементе <Claim> элемента <AdditionalClaims> не установлено значение true или false .
InvalidConfigurationForActionAndAlgorithm Если элемент <PrivateKey> используется с алгоритмами семейства HS или элемент <SecretKey> используется с алгоритмами семейства RSA, развертывание завершится неудачно.
InvalidValueForElement Если значение, указанное в элементе <Algorithm> , не является поддерживаемым, развертывание завершится неудачно.
MissingConfigurationElement Эта ошибка возникает, если элемент <PrivateKey> не используется с алгоритмами семейства RSA или элемент <SecretKey> не используется с алгоритмами семейства HS.
InvalidKeyConfiguration Если дочерний элемент <Value> не определен в элементах <PrivateKey> или <SecretKey> , развертывание завершится неудачей.
EmptyElementForKeyConfiguration Если атрибут ref дочернего элемента <Value> элементов <PrivateKey> или <SecretKey> пуст или не указан, развертывание завершится неудачей.
InvalidVariableNameForSecret Эта ошибка возникает, если имя переменной потока, указанное в атрибуте ref дочернего элемента <Value> элементов <PrivateKey> или <SecretKey> , не содержит частного префикса (private.) .
InvalidSecretInConfig Эта ошибка возникает, если дочерний элемент <Value> элементов <PrivateKey> или <SecretKey> не содержит частного префикса (private.) .
InvalidTimeFormat Если значение, указанное в элементе <NotBefore> , не использует поддерживаемый формат, развертывание завершится неудачно.

Переменные неисправности

Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name Matches "TokenExpired"
JWT.failed Все политики JWT устанавливают одну и ту же переменную в случае сбоя. JWT.failed = true

Пример ответа об ошибке

Коды ошибок политики JWT

Для обработки ошибок лучше всего перехватывать часть errorcode в ответе на ошибку. Не полагайтесь на текст в faultstring , поскольку он может измениться.

Пример правила неисправности

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

Политика JavaCallout

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.javacallout.ExecutionError 500 Происходит, когда код Java генерирует исключение или возвращает значение NULL во время выполнения политики JavaCallout.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего политику.

Название ошибки Строка неисправности Статус HTTP Происходит, когда
ResourceDoesNotExistResource with name [name] and type [type] does not exist Н/Д Файл, указанный в элементе <ResourceURL> , не существует.
JavaCalloutInstantiationFailed Failed to instantiate the JavaCallout Class [classname] Н/Д Файл класса, указанный в элементе <ClassName> отсутствует в банке.
IncompatibleJavaVersion Failed to load java class [classname] definition due to - [reason] Н/Д См. строку ошибки. См. также Поддерживаемое программное обеспечение и поддерживаемые версии .
JavaClassNotFoundInJavaResource Failed to find the ClassName in java resource [jar_name] - [class_name] Н/Д См. строку ошибки.
JavaClassDefinitionNotFound Failed to load java class [class_name] definition due to - [reason] Н/Д См. строку ошибки.
NoAppropriateConstructor No appropriate constructor found in JavaCallout class [class_name] Н/Д См. строку ошибки.
NoResourceForURL Could not locate a resource with URL [string] Н/Д См. строку ошибки.

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name Matches "ExecutionError"
javacallout. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. javacallout.JC-GetUserData.failed = true

Пример ответа об ошибке

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

Пример правила неисправности

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

Политика JavaScript

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.javascript.ScriptExecutionFailed 500 Политика JavaScript может вызывать множество различных типов ошибок ScriptExecutionFailed. Часто встречающиеся типы ошибок включают RangeError , ReferenceError , SyntaxError , TypeError и URIError .
steps.javascript.ScriptExecutionFailedLineNumber 500 Произошла ошибка в коде JavaScript. Подробности смотрите в строке ошибки. Н/Д
steps.javascript.ScriptSecurityError 500 Ошибка безопасности произошла при выполнении JavaScript. Подробности смотрите в строке ошибки. Н/Д

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidResourceUrlFormat Если формат URL-адреса ресурса, указанный в элементе <ResourceURL> или <IncludeURL> политики JavaScript, недействителен, развертывание прокси-сервера API завершается неудачно.
InvalidResourceUrlReference Если элементы <ResourceURL> или <IncludeURL> ссылаются на несуществующий файл JavaScript, развертывание прокси-сервера API завершается неудачно. Исходный файл, на который есть ссылка, должен существовать либо на уровне прокси-сервера API, либо на уровне среды, либо на уровне организации.
WrongResourceType Эта ошибка возникает во время развертывания, если элементы <ResourceURL> или <IncludeURL> политики JavaScript относятся к любому типу ресурса, кроме jsc (файл JavaScript).
NoResourceURLOrSource Развертывание политики JavaScript может завершиться неудачей из-за этой ошибки, если элемент <ResourceURL> не объявлен или если URL-адрес ресурса не определен в этом элементе. Элемент <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

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.jsonthreatprotection.ExecutionFailed 500 Политика JSONThreatProtection может вызывать множество различных типов ошибок ExecutionFailed. Большинство этих ошибок возникает при превышении определенного порога, установленного в политике. К этим типам ошибок относятся: длина имени записи объекта , количество записей объекта , количество элементов массива , глубина контейнера , длина строкового значения . Эта ошибка также возникает, когда полезные данные содержат недопустимый объект JSON .
steps.jsonthreatprotection.SourceUnavailable 500 Эта ошибка возникает, если переменная сообщения , указанная в элементе <Source> , имеет одно из следующих значений:
  • Вне области действия (недоступно в конкретном потоке, в котором выполняется политика)
  • Не является одним из допустимых значений request , response или message
steps.jsonthreatprotection.NonMessageVariable 500 Эта ошибка возникает, если для элемента <Source> установлена ​​переменная, которая не имеет типа message .

Ошибки развертывания

Никто.

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name Matches "SourceUnavailable"
jsonattack. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. jsonattack.JTP-SecureRequest.failed = true

Пример ответа об ошибке

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

Пример правила неисправности

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

Типы политики JSONThreatProtection определяют следующие коды ошибок:

Политика JSONtoXML

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.jsontoxml.ExecutionFailed 500 Входные полезные данные (JSON) пусты, или входные данные (JSON), переданные в политику JSON to XML, недействительны или имеют неверный формат.
steps.jsontoxml.InCompatibleTypes 500 Эта ошибка возникает, если тип переменной, определенной в элементе <Source> и элементе <OutputVariable> , не совпадает. Обязательно, чтобы тип переменных, содержащихся в элементе <Source> и элементе <OutputVariable> , совпадал. Допустимые типы — message и string .
steps.jsontoxml.InvalidSourceType 500 Эта ошибка возникает, если тип переменной, используемой для определения элемента <Source> , недопустим. Допустимые типы переменных — message и string .
steps.jsontoxml.OutputVariableIsNotAvailable 500 Эта ошибка возникает, если переменная, указанная в элементе <Source> политики JSON to XML, имеет строковый тип, а элемент <OutputVariable> не определен. Элемент <OutputVariable> является обязательным, если переменная, определенная в элементе <Source> , имеет строковый тип.
steps.jsontoxml.SourceUnavailable 500 Эта ошибка возникает, если переменная сообщения , указанная в элементе <Source> политики JSON to XML, имеет одно из следующих значений:
  • вне области действия (недоступно в конкретном потоке, в котором выполняется политика) или
  • не может быть решено (не определено)

Ошибки развертывания

Никто.

Переменные неисправности

Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
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

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.keyvaluemapoperations.SetVariableFailed 500

Эта ошибка возникает, если вы пытаетесь получить значение из зашифрованной карты значений ключей и установить значение переменной, имя которой не имеет префикса private . Префикс, необходимый для обеспечения базовой безопасности во время отладки, скрывает зашифрованные значения от трассировки прокси-сервера API и сеансов отладки.

steps.keyvaluemapoperations.UnsupportedOperationException 500

Эта ошибка возникает, если в политике операций с картой значений ключа для атрибута mapIdentifier задана пустая строка.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidIndex Если атрибут index , указанный в элементе <Get> политики операций с картами значений ключей, равен нулю или отрицательному числу, то развертывание прокси-сервера API завершается неудачно. Индекс начинается с 1 , поэтому индекс, равный нулю или отрицательному целому числу, считается недействительным.
KeyIsMissing Эта ошибка возникает, если элемент <Key> полностью отсутствует или элемент <Parameter> отсутствует в элементе <Key> под элементом <Entry> элемента <InitialEntries> политики операций с картой значений ключа.
ValueIsMissing Эта ошибка возникает, если элемент <Value> отсутствует под элементом <Entry> элемента <InitialEntries> политики операций с картой значений ключа.

Политика LDAP

Эта политика использует следующие коды ошибок:

Код ошибки Сообщение
InvalidAttributeName Invalid attribute name {0}.
InvalidSearchBase Search base can not be empty.
InvalidValueForPassword Invalid value for password field. It can not be empty.
InvalidSearchScope Invalid scope {0}. Allowed scopes are {1}.
InvalidUserCredentials Invalid user credentials.
InvalidExternalLdapReference Invalid external ldap reference {0}.
LdapResourceNotFound Ldap resource {0} not found.
BaseDNRequired Base DN required.
OnlyReferenceOrValueIsAllowed Only value or reference is allowed for {0}.
AttributesRequired At least one attribute required for search action.
UserNameIsNull User name is null.
SearchQueryAndUserNameCannotBePresent Both search query and username can not be present in the authentication action. Please specify either one of them.

Политика регистрации сообщений

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина
steps.messagelogging.StepDefinitionExecutionFailed 500 См. строку ошибки.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidProtocol Развертывание политики MessageLogging может завершиться с ошибкой из-за этой ошибки, если протокол, указанный в элементе <Protocol> , недействителен. Допустимые протоколы: TCP и UDP. Для отправки сообщений системного журнала через TLS/SSL поддерживается только TCP.
InvalidPort Развертывание политики регистрации сообщений может завершиться с ошибкой из-за этой ошибки, если номер порта не указан в элементе <Port> или если он недействителен. Номер порта должен быть целым числом, большим нуля.

Переменные неисправности

Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
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>

Политика проверки OAS

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина
steps.oasvalidation.Failed 500 Тело сообщения запроса не может быть проверено на соответствие предоставленной спецификации OpenAPI.
steps.oasvalidation.SourceMessageNotAvailable 500

Переменная, указанная в элементе <Source> политики, либо выходит за рамки области действия, либо не может быть разрешена.

steps.oasvalidation.NotMessageVariable 500

Элементу <Source> присвоена переменная, которая не имеет типа message .

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина
ResourceDoesNotExist Спецификация OpenAPI, указанная в элементе <OASResource> , не существует.
ResourceCompileFailed Спецификация OpenAPI, включенная в развертывание, содержит ошибки, препятствующие ее компиляции. Обычно это указывает на то, что спецификация не является корректной спецификацией OpenAPI 3.0.
BadResourceURL Спецификация OpenAPI, указанная в элементе <OASResource> , не может быть обработана. Это может произойти, если файл не является файлом JSON или YAML или URL-адрес файла указан неправильно.

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name Matches "ResourceDoesNotExist"
oasvalidation. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. oasvalidation.myoaspolicy.failed = true

Политика PopulateCache

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Происходит, когда
policies.populatecache.EntryCannotBeCached 500 Запись не может быть кэширована. Кэшируемый объект сообщения не является экземпляром сериализуемого класса.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidCacheResourceReference Эта ошибка возникает, если элементу <CacheResource> в политике PopulateCache присвоено имя, не существующее в среде, где развертывается прокси-сервер API.
CacheNotFound Кэш, указанный в элементе <CacheResource> , не существует.

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name = "EntryCannotBeCached"
populatecache. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. populatecache.POP-CACHE-1.failed = true

Пример ответа об ошибке

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

Пример правила неисправности

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

Политика LookupCache

В этом разделе описаны сообщения об ошибках и переменные потока, которые задаются, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила сбоев для прокси. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Префикс кода ошибки

Н/Д

Ошибки выполнения

Эта политика не вызывает никаких ошибок во время выполнения.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidCacheResourceReference Эта ошибка возникает, если для элемента <CacheResource> установлено имя, которое не существует в среде, где развертывается прокси-сервер API.
InvalidTimeout Если для элемента <CacheLookupTimeoutInSeconds> установлено отрицательное число, развертывание прокси-сервера API завершается неудачей.
CacheNotFound Эта ошибка возникает, если конкретный кэш, упомянутый в сообщении об ошибке, не был создан в определенном компоненте процессора сообщений.

Переменные неисправности

Н/Д

Пример ответа об ошибке

Н/Д

Политика ИнвалидатеКэш

В этом разделе описаны сообщения об ошибках и переменные потока, которые задаются, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила сбоев для прокси. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Префикс кода ошибки

Н/Д

Ошибки выполнения

Эта политика не вызывает никаких ошибок во время выполнения.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidCacheResourceReference Эта ошибка возникает, если элементу <CacheResource> в политике InvalidateCache присвоено имя, не существующее в среде, где развертывается прокси-сервер API.
CacheNotFound Эта ошибка возникает, если конкретный кэш, упомянутый в сообщении об ошибке, не был создан в определенном компоненте процессора сообщений.

Переменные неисправности

Н/Д

Пример ответа об ошибке

Н/Д

Политика ResponseCache

В этом разделе описаны сообщения об ошибках и переменные потока, которые задаются, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила сбоев для прокси. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Префикс кода ошибки

Н/Д

Ошибки выполнения

Эта политика не вызывает никаких ошибок во время выполнения.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidTimeout Если для элемента <CacheLookupTimeoutInSeconds> политики ResponseCache установлено отрицательное число, развертывание прокси-сервера API завершается неудачей.
InvalidCacheResourceReference Эта ошибка возникает, если элементу <CacheResource> в политике ResponseCache присвоено имя, которое не существует в среде, где развертывается прокси-сервер API.
ResponseCacheStepAttachmentNotAllowedReq Эта ошибка возникает, если одна и та же политика ResponseCache прикреплена к нескольким путям запросов в любых потоках прокси-сервера API.
ResponseCacheStepAttachmentNotAllowedResp Эта ошибка возникает, если одна и та же политика ResponseCache прикреплена к нескольким путям ответа в любых потоках прокси-сервера API.
InvalidMessagePatternForErrorCode Эта ошибка возникает, если элемент <SkipCacheLookup> или <SkipCachePopulation> в политике ResponseCache содержит недопустимое условие.
CacheNotFound Эта ошибка возникает, если конкретный кэш, упомянутый в сообщении об ошибке, не был создан в определенном компоненте процессора сообщений.

Переменные неисправности

Н/Д

Пример ответа об ошибке

Н/Д

Политика OAuthV2

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Выброшено операциями
steps.oauth.v2.access_token_expired 401 Срок действия токена доступа истек.

Верифициакцесстокен
Инвалидатетокен

steps.oauth.v2.access_token_not_approved 401 Токен доступа был отозван. VerifyAccessToken
steps.oauth.v2.apiresource_doesnot_exist 401 Запрошенный ресурс не существует ни одного из продуктов API, связанных с токеном доступа. VerifyAccessToken
steps.oauth.v2.FailedToResolveAccessToken 500 Политика ожидала найти токен доступа в переменной, указанной в элементе <AccessToken> , но эту переменную не удалось разрешить. Генерировать токен доступа
steps.oauth.v2.FailedToResolveAuthorizationCode 500 Политика ожидала найти код авторизации в переменной, указанной в элементе <Code> , но эту переменную не удалось разрешить. Генерироватькод авторизации
steps.oauth.v2.FailedToResolveClientId 500 Политика ожидала найти идентификатор клиента в переменной, указанной в элементе <ClientId> , но эту переменную не удалось разрешить. Генерировать токен доступа
Создать код авторизации
GenerateAccessTokenImplicitGrant
Обновить токен доступа
steps.oauth.v2.FailedToResolveRefreshToken 500 Политика ожидала найти токен обновления в переменной, указанной в элементе <RefreshToken> , но эту переменную не удалось разрешить. Обновить токен доступа
steps.oauth.v2.FailedToResolveToken 500 Политика ожидала найти токен в переменной, указанной в элементе <Tokens> , но эту переменную не удалось разрешить.

ValidateToken
Инвалидатетокен

steps.oauth.v2.InsufficientScope 403 Токен доступа, представленный в запросе, имеет область, не соответствующую области, указанной в политике проверки токена доступа. Дополнительные сведения об области см. в разделе Работа с областями действия OAuth2 . VerifyAccessToken
steps.oauth.v2.invalid_access_token 401 Токен доступа, отправленный от клиента, недействителен. VerifyAccessToken
steps.oauth.v2.invalid_client 401

Это имя ошибки возвращается, когда для свойства <GenerateResponse> политики установлено значение true , а идентификатор клиента, отправленный в запросе, недействителен. Убедитесь, что вы используете правильный клиентский ключ и секретные значения для приложения разработчика, связанного с вашим прокси-сервером. Обычно эти значения отправляются в виде заголовка базовой авторизации в кодировке Base64.

Примечание. Рекомендуется изменить существующие условия правила сбоя, чтобы перехватывать имена invalid_client и InvalidClientIdentifier . Дополнительную информацию и пример см. в примечаниях к выпуску 16.09.21 .

Генерировать токен доступа
Обновить токен доступа
steps.oauth.v2.invalid_request 400 Это имя ошибки используется для нескольких различных типов ошибок, обычно из-за отсутствия или неверных параметров, отправленных в запросе. Если для <GenerateResponse> установлено значение false , используйте переменные ошибки (описанные ниже) для получения подробной информации об ошибке, например имени и причины ошибки. Генерировать токен доступа
Генерироватькод авторизации
GenerateAccessTokenImplicitGrant
Обновить токен доступа
steps.oauth.v2.InvalidAccessToken 401 В заголовке авторизации нет обязательного слова «Носитель». Например: Authorization: Bearer your_access_token VerifyAccessToken
steps.oauth.v2.InvalidAPICallAsNo\
steps.oauth.v2.ApiProductMatchFound
401

Прокси-сервер API отсутствует в Продукте, связанном с токеном доступа.

Советы. Убедитесь, что продукт, связанный с токеном доступа, настроен правильно. Например, если вы используете подстановочные знаки в путях к ресурсам, убедитесь, что они используются правильно. Подробности см. в разделе Создание продуктов API .

Дополнительные сведения о причинах этой ошибки см. в этом сообщении сообщества Apigee.

VerifyAccessToken
steps.oauth.v2.InvalidClientIdentifier 500

Это имя ошибки возвращается, если для свойства <GenerateResponse> политики установлено значение false , а идентификатор клиента, отправленный в запросе, недействителен. Убедитесь, что вы используете правильный клиентский ключ и секретные значения для приложения разработчика, связанного с вашим прокси-сервером. Обычно эти значения отправляются в виде заголовка базовой авторизации в кодировке Base64.

Примечание. В этой ситуации эта ошибка раньше называлась invalid_client . Рекомендуется изменить существующие условия правила сбоя, чтобы перехватывать имена invalid_client и InvalidClientIdentifier . Дополнительную информацию и пример см. в примечаниях к выпуску 16.09.21 .

Генерировать токен доступа
Обновить токен доступа

steps.oauth.v2.InvalidParameter 500 В политике должен быть указан либо токен доступа, либо код авторизации, но не то и другое. Создать код авторизации
GenerateAccessTokenImplicitGrant
steps.oauth.v2.InvalidTokenType 500 Элемент <Tokens>/<Token> требует указания типа токена (например, refreshtoken ). Если клиент передает неправильный тип, выдается эта ошибка. ValidateToken
Инвалидатетокен
steps.oauth.v2.MissingParameter 500 Тип ответа — token , но типы грантов не указаны. Создать код авторизации
GenerateAccessTokenImplicitGrant
steps.oauth.v2.UnSupportedGrantType 500

Клиент указал тип предоставления, который не поддерживается политикой (не указан в элементе <SupportedGrantTypes>).

Примечание. В настоящее время существует ошибка, из-за которой ошибки неподдерживаемого типа предоставления не выдаются правильно. Если возникает ошибка неподдерживаемого типа предоставления, прокси-сервер не входит в поток ошибок, как ожидалось.

Генерировать токен доступа
Создать код авторизации
GenerateAccessTokenImplicitGrant
Обновить токен доступа

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина
InvalidValueForExpiresIn

Для элемента <ExpiresIn> допустимыми значениями являются положительные целые числа и -1 .

InvalidValueForRefreshTokenExpiresIn Для элемента <RefreshTokenExpiresIn> допустимыми значениями являются положительные целые числа и -1 .
InvalidGrantType В элементе <SupportedGrantTypes> указан недопустимый тип предоставления. Список допустимых типов см. в справочнике по политике.
ExpiresInNotApplicableForOperation Убедитесь, что операции, указанные в элементе <Operations>, поддерживают срок действия. Например, операция VerifyToken этого не делает.
RefreshTokenExpiresInNotApplicableForOperation Убедитесь, что операции, указанные в элементе <Operations>, поддерживают истечение срока действия токена обновления. Например, операция VerifyToken этого не делает.
GrantTypesNotApplicableForOperation Убедитесь, что типы грантов, указанные в <SupportedGrantTypes>, поддерживаются для указанной операции.
OperationRequired

Вы должны указать операцию в этой политике, используя элемент <Operation> .

Примечание. Если элемент <Operation> отсутствует, пользовательский интерфейс выдает ошибку проверки схемы.

InvalidOperation

Вы должны указать допустимую операцию в этой политике, используя элемент <Operation> .

Примечание. Если элемент <Operation> недействителен, пользовательский интерфейс выдает ошибку проверки схемы.

TokenValueRequired Вы должны указать значение токена <Token> в элементе <Tokens> .

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку во время выполнения.

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name = "invalid_request"
oauthV2. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. oauthV2.GenerateAccesstoken.failed = true
oauthV2. policy_name .fault.name policy_name — указанное пользователем имя политики, вызвавшей ошибку. oauthV2.GenerateAccesstoken.fault.name = invalid_request

Примечание . Для операции VerifyAccessToken имя ошибки включает суффикс: keymanagement.service
Например: keymanagement.service.invalid_access_token

oauthV2. policy_name .fault.cause policy_name — указанное пользователем имя политики, вызвавшей ошибку. oauthV2.GenerateAccesstoken.cause = Required param : grant_type

Пример ответа об ошибке

Эти ответы отправляются обратно клиенту, если элемент <GenerateResponse> имеет значение true .

Если <GenerateResponse> имеет значение true , политика возвращает ошибки в этом формате для операций, генерирующих токены и коды. Полный список см. в разделе «Справочник по ответам на ошибки HTTP OAuth» .

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

Если <GenerateResponse> имеет значение true , политика возвращает ошибки в этом формате для операций проверки и проверки. Полный список см. в разделе «Справочник по ответам на ошибки HTTP OAuth» .

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

Пример правила неисправности

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

Политика GetOAuthV2Info

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики. Имена ошибок, показанные ниже, представляют собой строки, которые присваиваются переменной 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 Идентификатор клиента, отправленный в политику, недействителен.
steps.oauth.v2.invalid_refresh_token 500 Токен обновления, отправленный в политику, недействителен.
steps.oauth.v2.invalid_request-authorization_code_invalid 500 Код авторизации, отправленный в политику, недействителен.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Пожалуйста, прочтите этот пост сообщества Apigee для получения информации об устранении этой ошибки.
steps.oauth.v2.refresh_token_expired 500 Срок действия токена обновления, отправленного в политику, истек.

Ошибки развертывания

Обратитесь к сообщению, отображаемому в пользовательском интерфейсе, для получения информации об ошибках развертывания.

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку во время выполнения.

Переменные Где Пример
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

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина
steps.oauth.v2.access_token_expired 500 Срок действия маркера доступа, отправленного в политику, истек.
steps.oauth.v2.invalid_access_token 500 Токен доступа, отправленный в политику, недействителен.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Пожалуйста, прочтите этот пост сообщества Apigee для получения информации об устранении этой ошибки.

Ошибки развертывания

Обратитесь к сообщению, отображаемому в пользовательском интерфейсе, для получения информации об ошибках развертывания.

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку во время выполнения.

Переменные Где Пример
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>

Политика удаленияOAuthV2Info

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина
steps.oauth.v2.invalid_access_token 401 Токен доступа, отправленный в политику, недействителен.
steps.oauth.v2.invalid_request-authorization_code_invalid 401 Код авторизации, отправленный в политику, недействителен.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Пожалуйста, прочтите этот пост сообщества Apigee для получения информации об устранении этой ошибки.

Ошибки развертывания

Обратитесь к сообщению, отображаемому в пользовательском интерфейсе, для получения информации об ошибках развертывания.

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку во время выполнения.

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name = "invalid_access_token"
oauthV2. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. oauthV2.DeleteTokenInfo.failed = true
oauthV2. policy_name .fault.name policy_name — указанное пользователем имя политики, вызвавшей ошибку. oauthV2.DeleteTokenInfo.fault.name = invalid_access_token
oauthv2. policy_name .fault.cause policy_name — указанное пользователем имя политики, вызвавшей ошибку. oauthV2.DeleteTokenInfo.cause = Invalid Access Token

Пример ответа об ошибке

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

Пример правила неисправности

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

Политика OAuthv1.0a

Тип политики OAuthV1 определяет следующие коды ошибок.

Коды ошибок HTTP, связанные с OAuth, см. в Справочнике по ответу на ошибку HTTP OAuth .

Код ошибки Сообщение
AppKeyNotResolved Could not resolve the app key with variable {0}
ConsumerKeyNotResolved Could not resolve the consumer key with variable {0}
RequestTokenNotResolved Could not resolve the request token with the variable {0}
AccessTokenNotResolved Could not resolve the access token with the variable {0}
ResponseGenerationError Error while generating response : {0}
UnableToDetermineOperation Unable to determine an operation for stepDefinition {0}
UnableToResolveOAuthConfig Unable to resolve the OAuth configuration for {0}
AtLeastOneParamRequired At least one of AccessToken, RequestToken or ConsumerKey must be specified in stepDefinition {0}
SpecifyValueOrRefReqToken Specify Request Token as value or ref in stepDefinition {0}
SpecifyValueOrRefAccToken Specify Access Token as value or ref in stepDefinition {0}
SpecifyValueOrRefConKey Specify Consumer Key as value or ref in stepDefinition {0}
SpecifyValueOrRefAppKey Specify App Key as value or ref in stepDefinition {0}
ExpiresInNotApplicableForOperation ExpiresIn element is not valid for operation {0}
InvalidValueForExpiresIn Invalid value for ExpiresIn element for operation {0}
FailedToFetchApiProduct Failed to fetch api product for key {0}
InvalidTokenType Valid token types : {0}, Invalid toke type {1} in stepDefinition {2}
TokenValueRequired Token value is required in stepDefinition {0}
FailedToResolveRealm Failed to resolve realm {0}

Политика GetOAuthV1Info

Для политики Get OAuth v1.0a Info не указаны коды ошибок.

Политика удаленияOAuthV1Info

В случае успеха политика возвращает статус 200.

В случае сбоя политика возвращает 404 и выводит примерно следующий результат (в зависимости от того, удаляете ли вы токен доступа, токен запроса или средство проверки):

HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 144
Connection: keep-alive

{"fault":{"faultstring":"Invalid Access Token","detail":{"errorcode":"keymanagement.service.invalid_request-access_token_invalid"}}}


Политика PythonScript

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.script.ScriptEvaluationFailed 500 Политика PythonScript может выдавать несколько различных типов ошибок ScriptExecutionFailed. Часто встречающиеся типы ошибок включают NameError и ZeroDivisionError .

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidResourceUrlFormat Если формат URL-адреса ресурса, указанный в элементе <ResourceURL> или <IncludeURL> политики PythonScript, недействителен, развертывание прокси-сервера 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>

Политика квот

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
policies.ratelimit.FailedToResolveQuotaIntervalReference 500 Происходит, если элемент <Interval> не определен в политике квот. Этот элемент является обязательным и используется для указания интервала времени, применимого к квоте. Временной интервал может составлять минуты, часы, дни, недели или месяцы, как определено элементом <TimeUnit> .
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference 500 Происходит, если элемент <TimeUnit> не определен в политике квот. Этот элемент является обязательным и используется для указания единицы времени, применимой к квоте. Временной интервал может составлять минуты, часы, дни, недели или месяцы.
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 Если тип квоты, указанный атрибутом type в элементе <Quota> , недействителен, развертывание прокси-сервера 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 Если указан элемент <StartTime> , тип квоты которого не является типом calendar , то развертывание прокси-сервера API завершается неудачно. Элемент <StartTime> поддерживается только для типа calendar квоты. Например, если в элементе <Quota> для атрибута type установлено значение flexi или rolling window , развертывание прокси-сервера API завершится сбоем.
InvalidTimeUnitForDistributedQuota Если для элемента <Distributed> установлено значение true , а для элемента <TimeUnit> установлено значение second , развертывание прокси-сервера API завершается неудачей. Параметр timeunit second недопустим для распределенной квоты.
InvalidSynchronizeIntervalForAsyncConfiguration Если значение, указанное для элемента <SyncIntervalInSeconds> в элементе <AsynchronousConfiguration> в политике квот, меньше нуля, развертывание прокси-сервера API завершается неудачей.
InvalidAsynchronizeConfigurationForSynchronousQuota Если для значения элемента <AsynchronousConfiguration> установлено значение true в политике квот, которая также имеет асинхронную конфигурацию, определенную с помощью элемента <AsynchronousConfiguration> , то развертывание прокси-сервера API завершается неудачей.

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name Matches "QuotaViolation"
ratelimit. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. ratelimit.QT-QuotaPolicy.failed = true

Пример ответа об ошибке

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

Пример правила неисправности

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

Сбросить политику квот

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
policies.resetquota.InvalidRLPolicy 500 Политика квот, указанная в элементе <Quota> политики сброса квоты, не определена в прокси-сервере API и, следовательно, недоступна во время потока. Элемент <Quota> является обязательным и определяет целевую политику квот, счетчик которой должен быть обновлен с помощью политики сброса квоты.
policies.resetquota.FailedToResolveAllowCountRef Н/Д Ссылку на переменную, содержащую счетчик разрешений в элементе <Allow> политики, невозможно преобразовать в значение. Этот элемент является обязательным и определяет величину уменьшения счетчика квоты.
policies.resetquota.FailedToResolveRLPolicy 500 Переменную, на которую ссылается атрибут ref в элементе <Quota> , невозможно разрешить.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidCount Если значение счетчика, указанное в элементе <Allow> политики сброса квот, не является целым числом, развертывание прокси-сервера API завершается неудачей.

Политика RaiseFault

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус 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

В этом разделе описаны коды ошибок и возвращаемые сообщения, а также переменные ошибки, установленные Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Если вы хотите зафиксировать ошибку и создать собственную пользовательскую ошибку, установите атрибут continueOnError="true" в корневом элементе политики. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки, возвращаемые политиками Edge, имеют единообразный формат, как описано в справочнике по кодам ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код ошибки Сообщение
Выполнение не удалось Не удалось выполнить StepDefinition {0} RegularExpressionProtection. Причина: {1}
Создание экземпляра не удалось Не удалось создать экземпляр StepDefinition RegularExpressionProtection {0}.
NonMessageVariable Переменная {0} не преобразуется в сообщение
Исходное сообщениенедоступно Сообщение {0} недоступно для RegularExpressionProtection StepDefinition {1}
Обнаружена угроза В {0} обнаружена угроза регулярного выражения: регулярное выражение: {1} ввод: {2}
VariableResolutionFailed Не удалось разрешить переменную {0}.

Ошибки развертывания

Код ошибки Сообщение Исправить
Каннотбеконвертедтонодезет RegularExpressionProtection {0}: результат xpath {1} невозможно преобразовать в набор узлов. Контекст {2}
Дубликат префикса RegularExpressionProtection {0}: повторяющийся префикс {1}.
Пустое выражениеJSONPathExpression RegularExpressionProtection {0}: пустое выражение JSONPath.
Пустое выражениеXPathExpression RegularExpressionProtection {0}: пустое выражение XPath.
ИнвалидРегулярноеВыражение RegularExpressionProtection {0}: неверное регулярное выражение {1}, контекст {2}
Ошибка компиляции JSONPath RegularExpressionProtection {0}: не удалось скомпилировать jsonpath {1}. Контекст {2}
NONEmptyPrefixMappedToEmptyURI RegularExpressionProtection {0}: непустой префикс {1} не может быть сопоставлен с пустым uri.
NoPatternsToEnforce RegularExpressionProtection {0}: в {1} нет шаблонов, требующих принудительного применения.
НичегоToEnforce RegularExpressionProtection {0}: по крайней мере один из URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload является обязательным.
XPathCompilationFailed RegularExpressionProtection {0}: не удалось скомпилировать XPath {1}. Контекст {2}

Переменные неисправности

Эти переменные устанавливаются, когда эта политика вызывает ошибку. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице выше. fault.name Matches "ThreatDetected"
regularexpressionprotection. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

Политика SOAPMessageValidation

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.messagevalidation.SourceMessageNotAvailable 500

Эта ошибка возникает, если переменная, указанная в элементе <Source> политики:

  • вне области действия (недоступно в конкретном потоке, в котором выполняется политика)
  • или
  • не может быть решено (не определено)
steps.messagevalidation.NonMessageVariable 500

Эта ошибка возникает, если для элемента <Source> в политике SOAPMessageValidation установлена ​​переменная, которая не имеет типа message .

Переменные типа сообщения представляют собой все HTTP-запросы и ответы. Встроенные переменные потока Edge request , response и message имеют тип message. Дополнительные сведения о переменных сообщения см. в справочнике по переменным .

steps.messagevalidation.Failed 500 Эта ошибка возникает, если политике SOAPMessageValidation не удается проверить полезную нагрузку входного сообщения на соответствие схеме XSD или определению WSDL. Это также произойдет, если в сообщении полезной нагрузки имеется неверный формат JSON или XML.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidResourceType Элементу <ResourceURL> в политике SOAPMessageValidation присвоен тип ресурса, не поддерживаемый этой политикой.
ResourceCompileFailed Сценарий ресурса, указанный в элементе <ResourceURL> политики SOAPMessageValidation, содержит ошибку, препятствующую его компиляции.
RootElementNameUnspecified Элемент <Element> в политике SOAPMessageValidation не содержит имени корневого элемента.
InvalidRootElementName Элемент <Element> в политике SOAPMessageValidation содержит имя корневого элемента, которое не соответствует правилам XML для допустимого именования элементов.
,

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.messagevalidation.SourceMessageNotAvailable 500

Эта ошибка возникает, если переменная, указанная в элементе <Source> политики:

  • вне области действия (недоступно в конкретном потоке, в котором выполняется политика)
  • или
  • не может быть решено (не определено)
steps.messagevalidation.NonMessageVariable 500

Эта ошибка возникает, если для элемента <Source> в политике SOAPMessageValidation установлена ​​переменная, которая не имеет типа message .

Переменные типа сообщения представляют собой все HTTP-запросы и ответы. Встроенные переменные потока Edge request , response и message имеют тип message. Дополнительные сведения о переменных сообщения см. в справочнике по переменным .

steps.messagevalidation.Failed 500 Эта ошибка возникает, если политике SOAPMessageValidation не удается проверить полезную нагрузку входного сообщения на соответствие схеме XSD или определению WSDL. Это также произойдет, если в сообщении полезной нагрузки имеется неверный формат JSON или XML.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidResourceType Элементу <ResourceURL> в политике SOAPMessageValidation присвоен тип ресурса, не поддерживаемый этой политикой.
ResourceCompileFailed Сценарий ресурса, указанный в элементе <ResourceURL> политики SOAPMessageValidation, содержит ошибку, препятствующую его компиляции.
RootElementNameUnspecified Элемент <Element> в политике SOAPMessageValidation не содержит имени корневого элемента.
InvalidRootElementName Элемент <Element> в политике SOAPMessageValidation содержит имя корневого элемента, которое не соответствует правилам XML для допустимого именования элементов.

SAMLAПолитика утверждений

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
SourceNotConfigured Один или несколько из следующих элементов политики проверки утверждений SAML не определены или пусты: <Source> , <XPath> , <Namespaces> , <Namespace> .
TrustStoreNotConfigured Если элемент <TrustStore> пуст или не указан в политике ValidateSAMLAssertion, развертывание прокси-сервера API завершается неудачей. Требуется действующее хранилище доверенных сертификатов.
NullKeyStoreAlias Если дочерний элемент <Alias> пуст или не указан в элементе <Keystore> политики создания утверждений SAML, развертывание прокси-сервера API завершается неудачно. Требуется действительный псевдоним хранилища ключей.
NullKeyStore Если дочерний элемент <Name> пуст или не указан в элементе <Keystore> политики GenerateSAMLAssertion, развертывание прокси-сервера API завершается неудачно. Требуется допустимое имя хранилища ключей.
NullIssuer Если элемент <Issuer> пуст или не указан в политике создания утверждений SAML, развертывание прокси-сервера 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

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.servicecallout.ExecutionFailed 500

Эта ошибка может возникнуть в следующих случаях:

  • политику запрашивают обработку входных данных, которые имеют неправильный формат или иным образом недействительны.
  • серверная целевая служба возвращает статус ошибки (по умолчанию 4xx или 5xx).
steps.servicecallout.RequestVariableNotMessageType 500 Переменная Request, указанная в политике, не имеет типа Message. Например, если это строка или другой тип, не являющийся сообщением, вы увидите эту ошибку.
steps.servicecallout.RequestVariableNotRequestMessageType 500 Переменная Request, указанная в политике, не относится к типу Request Message. Например, если это тип ответа, вы увидите эту ошибку.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
URLMissing Элемент <URL> внутри <HTTPTargetConnection> отсутствует или пуст.
ConnectionInfoMissing Эта ошибка возникает, если в политике нет элемента <HTTPTargetConnection> или <LocalTargetConnection> .
InvalidTimeoutValue Эта ошибка возникает, если значение <Timeout> отрицательное или нулевое.

Переменные неисправности

Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
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="VariableOfNonMsgType"></faultrule><FaultRule name="RequestVariableNotMessageType">
    <Step>
        <Name>AM-RequestVariableNotMessageType</Name>
    </Step>
    <Condition>(fault.name = "RequestVariableNotMessageType")</Condition>
</FaultRule>

Политика SpikeArrest

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникать при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
policies.ratelimit.FailedToResolveSpikeArrestRate 500 Эта ошибка возникает, если ссылку на переменную, содержащую параметр скорости в элементе <Rate> , невозможно преобразовать в значение в политике Spike Arrest. Этот элемент является обязательным и используется для указания скорости остановки всплесков в форме int pm или int ps .
policies.ratelimit.InvalidMessageWeight 500 Эта ошибка возникает, если значение, указанное для элемента <MessageWeight> через переменную потока, является недопустимым (нецелое значение).
policies.ratelimit.SpikeArrestViolation 429

Превышен лимит скорости.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidAllowedRate Если частота блокировки пиков, указанная в элементе <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>

Политика сбора статистики

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.

Runtime errors

None.

Deployment errors

Error name Cause Fix
UnsupportedDatatype If the type of the variable specified by the ref attribute in the <Statistic> element of the Statistics Collector policy is unsupported, then the deployment of the API proxy fails. The supported data types are string, integer, float, long, double, and boolean.
InvalidName If the name used to reference the data collected for the specified variable defined within the <Statistic> element of the Statistics Collector policy conflicts with a system-defined variable, then the deployment of the API proxy fails. Some of the known system-defined variables are organization and environment.
DatatypeMissing If the type of the variable specified by the ref attribute in the <Statistic> element of the Statistics Collector policy is missing, then the deployment of the API proxy fails.

Fault variables

None.

Проверить политику APIKey

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge 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.CompanyStatusNotActive 401 The Company associated with the Developer App that has the API key you are using has an inactive status. When a Company's status is set to inactive, you cannot access the developers or apps associated with that Company. An org admin can change a Company's status using the management API. See Set the Status of a Company.
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 Edge. An org admin can change the status of a Developer App using the management API. See Approve or Revoke Developer App.
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 Edge, but it is invalid. When Edge looks up the key in its database, it must exactly match the on 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 Register apps and manage API keys.
oauth.v2.InvalidApiKeyForGivenResource 401 An API key was received by Edge, 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>

Проверить политику JWS

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Происходит, когда
steps.jws.AlgorithmInTokenNotPresentInConfiguration 401 Происходит, когда политика проверки имеет несколько алгоритмов.
steps.jws.AlgorithmMismatch 401 Алгоритм, указанный в заголовке политики «Создать», не соответствует ожидаемому в политике «Проверка». Указанные алгоритмы должны совпадать.
steps.jws.ContentIsNotDetached 401 <DetachedContent> указывается, когда JWS не содержит отдельных полезных данных контента.
steps.jws.FailedToDecode 401 Политике не удалось декодировать JWS. Возможно, JWS поврежден.
steps.jws.InsufficientKeyLength 401 Для ключа менее 32 байт для алгоритма HS256
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 в качестве источника открытых ключей, но kid в подписанном JWS не указан в JWKS.
steps.jws.UnhandledCriticalHeader 401 Заголовок, обнаруженный политикой Verify JWS в crit заголовке, не указан в 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>

Проверьте политику JWT

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Происходит, когда
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Происходит, когда политика проверки имеет несколько алгоритмов.
steps.jwt.AlgorithmMismatch 401 Алгоритм, указанный в политике «Создать», не соответствует ожидаемому в политике «Проверка». Указанные алгоритмы должны совпадать.
steps.jwt.FailedToDecode 401 Политике не удалось декодировать JWT. Возможно, JWT поврежден.
steps.jwt.GenerationFailed 401 Политике не удалось создать JWT.
steps.jwt.InsufficientKeyLength 401 Для ключа менее 32 байт для алгоритма HS256, менее 48 байт для алгоритма HS386 и менее 64 байт для алгоритма HS512.
steps.jwt.InvalidClaim 401 В случае отсутствия утверждения или несоответствия утверждения, а также отсутствия заголовка или несоответствия заголовка.
steps.jwt.InvalidCurve 401 Кривая, заданная ключом, недопустима для алгоритма эллиптической кривой.
steps.jwt.InvalidJsonFormat 401 В заголовке или полезной нагрузке обнаружен недопустимый JSON.
steps.jwt.InvalidToken 401 Эта ошибка возникает, когда проверка подписи JWT не удалась.
steps.jwt.JwtAudienceMismatch 401 Заявка на аудиторию не прошла проверку токена.
steps.jwt.JwtIssuerMismatch 401 Заявление эмитента не прошло проверку токена.
steps.jwt.JwtSubjectMismatch 401 Субъект претензии не прошел проверку токена.
steps.jwt.KeyIdMissing 401 Политика Verify использует JWKS в качестве источника открытых ключей, но подписанный JWT не включает в заголовок свойство kid .
steps.jwt.KeyParsingFailed 401 Открытый ключ не удалось проанализировать из данной ключевой информации.
steps.jwt.NoAlgorithmFoundInHeader 401 Происходит, когда JWT не содержит заголовка алгоритма.
steps.jwt.NoMatchingPublicKey 401 Политика Verify использует JWKS в качестве источника открытых ключей, но kid в подписанном JWT не указан в JWKS.
steps.jwt.SigningFailed 401 В GenerateJWT для ключа размером меньше минимального для алгоритмов HS384 или HS512.
steps.jwt.TokenExpired 401 Политика пытается проверить токен с истекшим сроком действия.
steps.jwt.TokenNotYetValid 401 Токен еще не действителен.
steps.jwt.UnhandledCriticalHeader 401 Заголовок, обнаруженный политикой Verify JWT в crit заголовке, не указан в KnownHeaders .
steps.jwt.UnknownException 401 Произошло неизвестное исключение.
steps.jwt.WrongKeyType 401 Указан неправильный тип ключа. Например, если вы укажете ключ RSA для алгоритма эллиптической кривой или ключ кривой для алгоритма RSA.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
InvalidNameForAdditionalClaim Развертывание завершится неудачно, если утверждение, используемое в дочернем элементе <Claim> элемента <AdditionalClaims> , имеет одно из следующих зарегистрированных имен: kid , iss , sub , aud , iat , exp , nbf или jti .
InvalidTypeForAdditionalClaim Если утверждение, используемое в дочернем элементе <Claim> элемента <AdditionalClaims> , не имеет типа string , number , boolean или map , развертывание завершится неудачно.
MissingNameForAdditionalClaim Если имя утверждения не указано в дочернем элементе <Claim> элемента <AdditionalClaims> , развертывание завершится неудачей.
InvalidNameForAdditionalHeader Эта ошибка возникает, когда имя утверждения, используемое в дочернем элементе <Claim> элемента <AdditionalClaims> , имеет значение alg или typ .
InvalidTypeForAdditionalHeader Если тип утверждения, используемого в дочернем элементе <Claim> элемента <AdditionalClaims> , не относится к типу string , number , boolean или map , развертывание завершится неудачей.
InvalidValueOfArrayAttribute Эта ошибка возникает, когда для значения атрибута массива в дочернем элементе <Claim> элемента <AdditionalClaims> не установлено значение true или false .
InvalidValueForElement Если значение, указанное в элементе <Algorithm> , не является поддерживаемым, развертывание завершится неудачей.
MissingConfigurationElement Эта ошибка возникает, если элемент <PrivateKey> не используется с алгоритмами семейства RSA или элемент <SecretKey> не используется с алгоритмами семейства HS.
InvalidKeyConfiguration Если дочерний элемент <Value> не определен в элементах <PrivateKey> или <SecretKey> , развертывание завершится неудачей.
EmptyElementForKeyConfiguration Если атрибут ref дочернего элемента <Value> элементов <PrivateKey> или <SecretKey> пуст или не указан, развертывание завершится неудачей.
InvalidConfigurationForVerify Эта ошибка возникает, если элемент <Id> определен внутри элемента <SecretKey> .
InvalidEmptyElement Эта ошибка возникает, если элемент <Source> политики Verify JWT пуст. Если он присутствует, он должен быть определен с именем переменной потока Edge.
InvalidPublicKeyValue Если значение, используемое в дочернем элементе <JWKS> элемента <PublicKey> , не использует допустимый формат, указанный в RFC 7517 , развертывание завершится неудачей.
InvalidConfigurationForActionAndAlgorithm Если элемент <PrivateKey> используется с алгоритмами семейства HS или элемент <SecretKey> используется с алгоритмами семейства RSA, развертывание завершится неудачей.

Переменные неисправности

Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name Matches "TokenExpired"
JWT.failed Все политики JWT устанавливают одну и ту же переменную в случае сбоя. JWT.failed = true

Пример ответа об ошибке

Коды ошибок политики JWT

Для обработки ошибок лучше всего перехватывать часть errorcode в ответе на ошибку. Не полагайтесь на текст в faultstring , поскольку он может измениться.

Пример правила неисправности

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

Политика XMLThreatProtection

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.xmlthreatprotection.ExecutionFailed 500 Политика XMLThreatProtection может выдавать множество различных типов ошибок ExecutionFailed. Большинство этих ошибок возникает при превышении определенного порога, установленного в политике. К этим типам ошибок относятся: длина имени элемента , количество дочерних элементов , глубина узла , количество атрибутов , длина имени атрибута и многие другие. Полный список можно просмотреть в разделе , посвященном устранению ошибок во время выполнения политики XMLThreatProtection .
steps.xmlthreatprotection.InvalidXMLPayload 500 Эта ошибка возникает, если полезные данные входного сообщения, указанные элементом <Source> политики XMLThreatProtection, не являются допустимым XML-документом.
steps.xmlthreatprotection.SourceUnavailable 500 Эта ошибка возникает, если переменная сообщения , указанная в элементе <Source> , имеет одно из следующих значений:
  • Вне области действия (недоступно в конкретном потоке, в котором выполняется политика)
  • Не является одним из допустимых значений request , response или message
steps.xmlthreatprotection.NonMessageVariable 500 Эта ошибка возникает, если для элемента <Source> установлена ​​переменная, которая не имеет типа message .

Примечания:

  • Имя ошибки ExecutionFailed является именем ошибки по умолчанию и будет возвращено независимо от типа обнаруженной ошибки; однако это значение по умолчанию можно изменить, задав свойство на уровне организации. Если это свойство установлено, имя ошибки будет отражать фактическую ошибку. Например, «TextExceeded» или «AttrValueExceeded». Подробности см. в Примечаниях по использованию .
  • Статус HTTP 500 является значением по умолчанию; однако статус HTTP можно изменить на 400 в случае ошибок потока запросов, установив свойство на уровне организации. Подробности см. в Примечаниях по использованию .

Ошибки развертывания

Никто.

Переменные неисправности

Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
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

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.xmltojson.ExecutionFailed 500 Эта ошибка возникает, когда входные полезные данные (XML) пусты или входной XML недействителен или имеет неверный формат.
steps.xmltojson.InCompatibleType 500 Эта ошибка возникает, если тип переменной, определенной в элементе <Source> и элементе <OutputVariable> , не совпадает. Обязательно, чтобы тип переменных, содержащихся в элементе <Source> и элементе <OutputVariable> , совпадал.
steps.xmltojson.InvalidSourceType 500 Эта ошибка возникает, если тип переменной, используемой для определения элемента <Source> недействителен. Допустимыми типами переменных являются сообщение и строка.
steps.xmltojson.OutputVariableIsNotAvailable 500 Эта ошибка возникает, если переменная, указанная в элементе <Source> политики XML в JSON, имеет строковый тип, а элемент <OutputVariable> не определен. Элемент <OutputVariable> является обязательным, если переменная, определенная в элементе <Source> , имеет строковый тип.
steps.xmltojson.SourceUnavailable 500 Эта ошибка возникает, если переменная сообщения , указанная в элементе <Source> политики XML в JSON, имеет одно из следующих значений:
  • вне области действия (недоступно в конкретном потоке, в котором выполняется политика) или
  • не может быть решено (не определено)

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
EitherOptionOrFormat Если один из элементов <Options> или <Format> не объявлен в политике XML to JSON, развертывание прокси-сервера API завершается неудачей.
UnknownFormat Если для элемента <Format> в политике XML to JSON определен неизвестный формат, развертывание прокси-сервера API завершается неудачно. Предопределенные форматы включают: xml.com , yahoo , google и badgerFish .

Переменные неисправности

Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .

Переменные Где Пример
fault.name=" fault_name " fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. fault.name = "SourceUnavailable"
xmltojson. policy_name .failed policy_name — указанное пользователем имя политики, вызвавшей ошибку. xmltojson.XMLtoJSON-1.failed = true

Пример ответа об ошибке

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

Пример правила неисправности

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

Политика XSLTransform

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.xsl.XSLSourceMessageNotAvailable 500 Эта ошибка возникает, если переменная сообщения или строка, указанная в элементе <Source> политики преобразования XSL, либо выходит за рамки области действия (недоступна в конкретном потоке, в котором выполняется политика), либо не может быть разрешена (не определена). ).
steps.xsl.XSLEvaluationFailed 500 Эта ошибка возникает, если полезные данные входного XML недоступны или имеют неправильный формат или политика XSLTransform не работает или не может преобразовать входной файл XML на основе правил преобразования, предусмотренных в файле XSL. Может быть много разных причин сбоя политики XSLTransform. Причина сбоя в сообщении об ошибке предоставит дополнительную информацию о причине.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
XSLEmptyResourceUrl Если элемент <ResourceURL> в политике XSL Transform пуст, развертывание прокси-сервера API завершается неудачей.
XSLInvalidResourceType Если тип ресурса, указанный в элементе <ResourceURL> политики преобразования XSL, не относится к типу xsl , развертывание прокси-сервера API завершается неудачей.