Informacje o błędach zasad

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Zasady AccessControl

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
accesscontrol.IPDeniedAccess 403 Adres IP klienta lub adres IP przekazany w żądaniu do interfejsu API odpowiada adresowi IP określonemu w elemencie <SourceAddress> w obrębie element <MatchRule> zasad kontroli dostępu oraz atrybut action klasy Element <MatchRule> jest ustawiony na DENY.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Zmienne związane z błędami związanymi z zasadami.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "IPDeniedAccess"
acl.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. acl.AC-AllowAccess.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasady dotyczące AccessEntity

Powiązane informacje znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Brak.

Błędy wdrażania

Nazwa błędu Ciąg błędu Stan HTTP Występuje, gdy
InvalidEntityType Invalid type [entity_type] in ACCESSENTITYStepDefinition [policy_name] Nie dotyczy Użyty typ encji musi być jednym z obsługiwanych typów.

Zasada przypisywania wiadomości

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.assignmessage.SetVariableFailed 500 Zasada nie mogła ustawić zmiennej. Zobacz ciąg błędu dla nazwy nierozwiązane.
steps.assignmessage.VariableOfNonMsgType 500

Ten błąd występuje, jeśli atrybut source w elemencie <Copy> jest ustawiony na zmienną który nie jest typu wiadomość.

Zmienne typu wiadomości reprezentują całe żądania i odpowiedzi HTTP. Wbudowana aplikacja Edge Zmienne przepływu request, response i message są typem komunikatu. Aby dowiedzieć się więcej, o zmiennych wiadomości znajdziesz w dokumentacji zmiennych.

steps.assignmessage.UnresolvedVariable 500

Ten błąd występuje, jeśli zmienna określona w zasadzie przypisywania wiadomości to:

  • poza zakresem (niedostępne w ramach konkretnego procesu, w którym są realizowane zasady)
  • lub
  • nie można rozwiązać (nie jest zdefiniowany)

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.

Nazwa błędu Przyczyna Napraw
InvalidIndex Jeśli indeks określony w elementach <Copy> i/lub <Remove> pliku Assign Message (Przypisywanie wiadomości) ma wartość 0 lub jest liczbą ujemną, wdrożenie serwera proxy interfejsu API się nie uda.
InvalidVariableName Jeśli element podrzędny <Name> jest pusty lub nie został określony w elemencie <AssignVariable>, wdrożenie serwera proxy interfejsu API nie powiedzie się, ponieważ brakuje prawidłowej nazwy zmiennej, aby przypisać wartość. Wymagana jest prawidłowa nazwa zmiennej.
InvalidPayload Ładunek określony w zasadzie jest nieprawidłowy.

Zmienne błędów

Te zmienne są ustawiane, gdy ta zasada wywołuje błąd w czasie działania. Aby dowiedzieć się więcej, zapoznaj się z artykułem Co musisz wiedzieć o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "UnresolvedVariable"
assignmessage.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. assignmessage.AM-SetResponse.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasada BasicAuthentication

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.basicauthentication.InvalidBasicAuthenticationSource 500 Do dekodowania, gdy przychodzący ciąg zakodowany w standardzie Base64 nie zawiera prawidłowej wartości lub nagłówek jest nieprawidłowy (np. nie zaczyna się od „Podstawowy”).
steps.basicauthentication.UnresolvedVariable 500 Brak zmiennych źródłowych wymaganych do dekodowania lub kodowania. Ten błąd może spowodować występuje tylko wtedy, gdy IgnoreUnresolvedVariables ma wartość fałsz.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.

Nazwa błędu Występuje, gdy Napraw
UserNameRequired W operacji nazwanej musi znajdować się element <User>.
PasswordRequired W operacji nazwanej musi znajdować się element <Password>.
AssignToRequired W operacji nazwanej musi znajdować się element <AssignTo>.
SourceRequired W operacji nazwanej musi znajdować się element <Source>.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "UnresolvedVariable"
BasicAuthentication.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. BasicAuthentication.BA-Authenticate.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasada ograniczania szybkości równoczesnego dostępu

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 errors. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Occurs when
policies.concurrentratelimit.ConcurrentRatelimtViolation 503

ConcurrentRatelimit connection exceeded. Connection limit : {0}

Note: The Fault code shown on the left is correct, although it contains a misspelling ("limt"). Be sure to use the code exactly as shown here when creating fault rules to trap this error.

Deployment errors

Error name Occurs when
InvalidCountValue ConcurrentRatelimit invalid count value specified.
ConcurrentRatelimitStepAttachment\
NotAllowedAtProxyEndpoint
Concurrent Ratelimit policy {0} attachment is not allowed at proxy request/response/fault paths. This policy must be placed on the Target Endpoint.
ConcurrentRatelimitStepAttachment\
MissingAtTargetEndpoint
Concurrent Ratelimit policy {0} attachment is missing at target request/response/fault paths. This policy must be placed in the Target Request Preflow, Target Response Postflow, and DefaultFaultRule.
InvalidTTLForMessageTimeOut ConcurrentRatelimit invalid ttl value specified for message timeout. It must be a positive integer.

Fault variables

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

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "ConcurrentRatelimtViolation"

Note: The Error code shown in the example is correct, although it contains a misspelling ("limt"). Please be sure to use the code exactly as shown here when creating fault rules to trap this error.

concurrentratelimit.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. concurrentratelimit.CRL-RateLimitPolicy.failed = true

Example error response

If the rate limit is exceeded, the policy returns only an HTTP status 503 to the client.

Example fault rule

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

Zasady dotyczące dekodowania JWS

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Występuje, gdy
steps.jws.FailedToDecode 401 Nie udało się zdekodować JWS za pomocą zasady. Być może JWS jest uszkodzony.
steps.jws.FailedToResolveVariable 401 Występuje, gdy zmienna przepływu określona w elemencie <Source> zasady nie istnieje.
steps.jws.InvalidClaim 401 Brak zgodności z deklaracją lub zgłoszeniem albo brak zgodności nagłówka lub nagłówka.
steps.jws.InvalidJsonFormat 401 W nagłówku JWS znaleziono nieprawidłowy kod JSON.
steps.jws.InvalidJws 401 Ten błąd występuje, gdy weryfikacja podpisu JWS nie powiedzie się.
steps.jws.InvalidPayload 401 Ładunek JWS jest nieprawidłowy.
steps.jws.InvalidSignature 401 Element <DetachedContent> jest pominięty, a JWS ma odłączony ładunek treści.
steps.jws.MissingPayload 401 Brak ładunku JWS.
steps.jws.NoAlgorithmFoundInHeader 401 Występuje, gdy JWS pomija nagłówek algorytmu.
steps.jws.UnknownException 401 Wystąpił nieznany wyjątek.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Występuje, gdy
InvalidAlgorithm Jedyne prawidłowe wartości to: 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

Inne możliwe błędy wdrażania.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "TokenExpired"
JWS.failed Wszystkie zasady JWS ustawiają tę samą zmienną w przypadku awarii. jws.JWS-Policy.failed = true

Przykładowa odpowiedź na błąd

W przypadku obsługi błędów sprawdzoną metodą jest przechwycenie części błędu errorcode. . Nie polegaj na tekście zawartym w pliku faultstring, ponieważ może się on zmienić.

Przykładowa reguła błędu

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

Zasady DecodeJWT

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.jwt.FailedToDecode 401 Występuje, gdy zasada nie może zdekodować tokena JWT. Token JWT może być zniekształcony, nieprawidłowy lub z innego powodu nie można go usunąć.
steps.jwt.FailedToResolveVariable 401 Występuje, gdy zmienna przepływu określona w elemencie <Source> zasady nie istnieje.
steps.jwt.InvalidToken 401 Występuje, gdy zmienna przepływu określona w elemencie <Source> zasady jest poza zakresem lub nie można jej rozwiązać.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidEmptyElement Dzieje się tak, gdy zmienna przepływu zawierająca token JWT do zdekodowania nie jest określona w elemencie <Source> zasady.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "TokenExpired"
JWT.failed Wszystkie zasady JWT ustawiają tę samą zmienną w przypadku niepowodzenia. JWT.failed = true

Przykładowa odpowiedź na błąd

Kody błędów zasad JWT

W przypadku obsługi błędów sprawdzoną metodą jest przechwycenie części błędu errorcode. . Nie polegaj na tekście zawartym w pliku faultstring, ponieważ może się on zmienić.

Przykładowa reguła błędu

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

Zasady dotyczące funkcji ExtractVariables

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.extractvariables.ExecutionFailed 500

Ten błąd występuje, gdy:

  • Ładunek wejściowy (JSON, XML) jest pusty.
  • Dane wejściowe (JSON, XML itp.) przekazywane do zasady są nieprawidłowe lub źle sformułowane.
steps.extractvariables.ImmutableVariable 500 Zmiennej używanej w zasadzie nie można zmienić. Zasada nie mogła tego ustawić .
steps.extractvariables.InvalidJSONPath 500 Ten błąd występuje, jeśli w elemencie JSONPath metody JSON używana jest nieprawidłowa ścieżka JSON . Jeśli na przykład ładunek JSON nie ma obiektu Name, ale podasz w zasadzie Name, to ten błąd występuje.
steps.extractvariables.JsonPathParsingFailure 500 Ten błąd występuje, gdy zasada nie może przeanalizować ścieżki JSON i wyodrębnienia danych ze zmiennej przepływu określonej w elemencie Source. Zwykle to dzieje się, jeśli zmienna przepływu podana w elemencie Source nie istnieje w bieżącej przepływu danych.
steps.extractvariables.SetVariableFailed 500 Ten błąd występuje, jeśli zasada nie może ustawić wartości zmiennej. Błąd ten występuje zazwyczaj przy próbie przypisania wartości do wielu zmiennych, których nazwy zaczynają się z tymi samymi słowami w zagnieżdżonym formacie oddzielonych kropkami.
steps.extractvariables.SourceMessageNotAvailable 500 Ten błąd występuje, jeśli komunikat zmienna określona w elemencie Source zasady jest:
  • poza zakresem (niedostępne w ramach konkretnego procesu, w którym są realizowane zasady) lub
  • Nie można go rozwiązać (nie jest zdefiniowany)
steps.extractvariables.UnableToCast 500 Ten błąd występuje, jeśli zasada nie może rzutować wyodrębnionych elementów do zmiennej. Zwykle dzieje się tak, gdy próbujesz ustawić wartość z jednego typu danych na zmienną innego typu danych.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.

Nazwa błędu Przyczyna Napraw
NothingToExtract Jeśli zasada nie zawiera żadnego elementu URIPath, QueryParam, Header, FormParam, XMLPayload lub JSONPayload, wdrożenie serwera proxy interfejsu API się nie uda, ponieważ nie ma niczego do wyodrębnienia.
NONEmptyPrefixMappedToEmptyURI Ten błąd występuje, jeśli zasada ma prefiks zdefiniowany w Namespace w elemencie XMLPayload, ale żaden identyfikator URI nie jest zdefiniowano jego definicję.
DuplicatePrefix Ten błąd występuje, jeśli zasada ma ten sam prefiks zdefiniowany więcej niż tylko raz w elemencie Namespace w elemencie XMLPayload.
NoXPathsToEvaluate Jeśli zasada nie ma elementu XPath w parametrze XMLPayload, wdrożenie serwera proxy interfejsu API kończy się niepowodzeniem i wyświetlany jest ten błąd.
EmptyXPathExpression Jeśli zasada ma puste wyrażenie XPath w elemencie XMLPayload , nie uda się wdrożyć serwera proxy interfejsu API.
NoJSONPathsToEvaluate Jeśli zasada nie ma elementu JSONPath w parametrze JSONPayload, wdrożenie serwera proxy interfejsu API kończy się niepowodzeniem i wyświetlany jest ten błąd.
EmptyJSONPathExpression Jeśli zasada ma puste wyrażenie XPath w parametrze XMLPayload, nie udało się wdrożyć serwera proxy interfejsu API.
MissingName Jeśli zasada nie ma atrybutu name w żadnej zasadzie elementy takie jak QueryParam, Header, FormParam lub Variable, jeśli jest to wymagane, nie uda się wdrożyć serwera proxy interfejsu API.
PatternWithoutVariable Jeśli zasada nie ma określonej zmiennej w elemencie Pattern, wdrożenie serwera proxy interfejsu API się nie uda. Element Pattern wymaga nazwy zmienną, w której będą przechowywane wyodrębnione dane.
CannotBeConvertedToNodeset Jeśli zasada zawiera wyrażenie XPath, w którym typ Variable jest zdefiniowana jako nodeset, ale wyrażenia nie można przekonwertować na zbiór węzłów, wdrożenie serwera proxy interfejsu API się nie uda.
JSONPathCompilationFailed Zasada nie mogła skompilować określonej ścieżki JSON.
InstantiationFailed Nie udało się utworzyć wystąpienia zasady.
XPathCompilationFailed Jeśli prefiks lub wartość w elemencie XPath nie są częścią żadnej zadeklarowanych w zasadach przestrzeni nazw, a następnie wdrożenie serwera proxy interfejsu API niepowodzenie.
InvalidPattern Jeśli definicja elementu Pattern jest nieprawidłowa w którymkolwiek z elementów, takich jak URIPath, QueryParam, Header, FormParam, XMLPayload lub JSONPayload, wdrożenie Błąd serwera proxy interfejsu API.

Zmienne błędów

Te zmienne są ustawiane, gdy ta zasada wywołuje błąd w czasie działania. Aby dowiedzieć się więcej, zapoznaj się z artykułem Co musisz wiedzieć o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name = "SourceMessageNotAvailable"
extractvariables.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. extractvariables.EV-ParseJsonResponse.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

GenerateJWS policy

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów w przypadku tych błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Występuje, gdy
steps.jws.GenerationFailed 401 Za pomocą zasady nie udało się wygenerować pakietu JWS.
steps.jws.InsufficientKeyLength 401 Dla klucza krótszego niż 32 bajty dla algorytmu HS256
steps.jws.InvalidClaim 401 Brak zgodności z deklaracją lub zgłoszeniem albo brak zgodności nagłówka lub nagłówka.
steps.jws.InvalidCurve 401 Krzywa określona przez klucz jest nieprawidłowa dla algorytmu krzywych eliptycznych.
steps.jws.InvalidJsonFormat 401 W nagłówku JWS znaleziono nieprawidłowy kod JSON.
steps.jws.InvalidPayload 401 Ładunek JWS jest nieprawidłowy.
steps.jws.InvalidSignature 401 Element <DetachedContent> jest pominięty, a JWS ma odłączony ładunek treści.
steps.jws.KeyIdMissing 401 Zasada weryfikacji używa JWKS jako źródła kluczy publicznych, ale podpisany JWS nie zawiera w nagłówku właściwości kid.
steps.jws.KeyParsingFailed 401 Nie udało się przeanalizować klucza publicznego na podstawie podanych informacji o kluczu.
steps.jws.MissingPayload 401 Brak ładunku JWS.
steps.jws.NoAlgorithmFoundInHeader 401 Występuje, gdy JWS pomija nagłówek algorytmu.
steps.jws.SigningFailed 401 W WygenerujJWS klucz mniejszy niż minimalny rozmiar algorytmów HS384 lub HS512
steps.jws.UnknownException 401 Wystąpił nieznany wyjątek.
steps.jws.WrongKeyType 401 Podano nieprawidłowy typ klucza. Możesz na przykład podać klucz RSA dla algorytmu krzywych eliptycznych lub klucz krzywej dla algorytmu RSA.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Występuje, gdy
InvalidAlgorithm Jedyne prawidłowe wartości to: 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

Inne możliwe błędy wdrażania.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "TokenExpired"
JWS.failed Wszystkie zasady JWS ustawiają tę samą zmienną w przypadku awarii. jws.JWS-Policy.failed = true

Przykładowa odpowiedź na błąd

W przypadku obsługi błędów sprawdzoną metodą jest przechwycenie części błędu errorcode. . Nie polegaj na tekście zawartym w pliku faultstring, ponieważ może się on zmienić.

Przykładowa reguła błędu

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

Zasada GenerateJWT

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Występuje, gdy
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Dzieje się tak, gdy zasada weryfikacji ma wiele algorytmów.
steps.jwt.AlgorithmMismatch 401 Algorytm określony w zasadzie generowania nie był zgodny z algorytmem określonym w zasadzie weryfikacji. Podane algorytmy muszą się zgadzać.
steps.jwt.FailedToDecode 401 Zasadom nie udało się zdekodować tokena JWT. Token JWT jest prawdopodobnie uszkodzony.
steps.jwt.GenerationFailed 401 Nie udało się wygenerować tokena JWT za pomocą zasady.
steps.jwt.InsufficientKeyLength 401 W przypadku klucza krótszego niż 32 bajty dla algorytmu HS256, mniej niż 48 bajtów w przypadku algorytmu HS386 i mniej niż 64 bajty w przypadku algorytmu HS512.
steps.jwt.InvalidClaim 401 Brak zgodności z deklaracją lub zgłoszeniem albo brak zgodności nagłówka lub nagłówka.
steps.jwt.InvalidCurve 401 Krzywa określona przez klucz jest nieprawidłowa dla algorytmu krzywych eliptycznych.
steps.jwt.InvalidJsonFormat 401 W nagłówku lub ładunku znaleziono nieprawidłowy kod JSON.
steps.jwt.InvalidToken 401 Ten błąd występuje, gdy weryfikacja podpisu JWT nie powiedzie się.
steps.jwt.JwtAudienceMismatch 401 Podczas weryfikacji tokena nie udało się potwierdzić odbiorców.
steps.jwt.JwtIssuerMismatch 401 Podczas weryfikacji tokena nie udało się zgłosić deklaracji wydawcy.
steps.jwt.JwtSubjectMismatch 401 Żądanie tematu nie powiodło się podczas weryfikacji tokena.
steps.jwt.KeyIdMissing 401 Zasada weryfikacji używa JWKS jako źródła kluczy publicznych, ale podpisany token JWT nie zawiera w nagłówku właściwości kid.
steps.jwt.KeyParsingFailed 401 Nie udało się przeanalizować klucza publicznego na podstawie podanych informacji o kluczu.
steps.jwt.NoAlgorithmFoundInHeader 401 Występuje, gdy token JWT nie zawiera nagłówka algorytmu.
steps.jwt.NoMatchingPublicKey 401 Zasada weryfikacji używa JWKS jako źródła kluczy publicznych, ale kid w podpisanym tokenie JWT nie jest wymieniony w JWKS.
steps.jwt.SigningFailed 401 W narzędziu Wygeneruj JWT dla klucza mniejszego niż minimalny rozmiar algorytmów HS384 lub HS512
steps.jwt.TokenExpired 401 Zasada próbuje zweryfikować wygasły token.
steps.jwt.TokenNotYetValid 401 Token nie jest jeszcze prawidłowy.
steps.jwt.UnhandledCriticalHeader 401 Nagłówek, który znajduje się w zasadzie weryfikacji JWT w nagłówku crit, nie jest wymieniony w KnownHeaders.
steps.jwt.UnknownException 401 Wystąpił nieznany wyjątek.
steps.jwt.WrongKeyType 401 Podano nieprawidłowy typ klucza. Możesz na przykład podać klucz RSA dla algorytmu krzywych eliptycznych lub klucz krzywej dla algorytmu RSA.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidNameForAdditionalClaim Wdrożenie nie uda się, jeśli żądanie użyte w elemencie podrzędnym <Claim> elementu <AdditionalClaims> jest jedną z tych zarejestrowanych nazw: kid, iss, sub, aud, iat, exp, nbf lub jti.
InvalidTypeForAdditionalClaim Jeśli żądanie użyte w elemencie podrzędnym <Claim> elementu <AdditionalClaims> nie jest typu string, number, boolean ani map, wdrożenie się nie uda.
MissingNameForAdditionalClaim Jeśli nazwy deklaracji nie podasz w elemencie podrzędnym <Claim> elementu <AdditionalClaims>, wdrożenie się nie uda.
InvalidNameForAdditionalHeader Ten błąd występuje, gdy nazwa roszczenia użytego w elemencie podrzędnym <Claim> elementu <AdditionalClaims> to alg lub typ.
InvalidTypeForAdditionalHeader Jeśli typ deklaracji użyty w elemencie podrzędnym <Claim> elementu <AdditionalClaims> nie jest typu string, number, boolean ani map, wdrożenie się nie uda.
InvalidValueOfArrayAttribute Ten błąd występuje, gdy wartość atrybutu tablicy w elemencie podrzędnym <Claim> elementu <AdditionalClaims> nie jest ustawiona na true lub false.
InvalidConfigurationForActionAndAlgorithm Jeśli element <PrivateKey> jest używany w algorytmach rodziny HS lub element <SecretKey> jest używany w algorytmach rodziny RSA, wdrożenie się nie uda.
InvalidValueForElement Jeśli wartość podana w elemencie <Algorithm> nie jest obsługiwaną wartością, wdrożenie się nie uda.
MissingConfigurationElement Ten błąd występuje, jeśli element <PrivateKey> nie jest używany w algorytmach rodziny RSA lub jeśli element <SecretKey> nie jest używany w algorytmach rodziny HS.
InvalidKeyConfiguration Jeśli element podrzędny <Value> nie jest zdefiniowany w elementach <PrivateKey> lub <SecretKey>, wdrożenie się nie uda.
EmptyElementForKeyConfiguration Jeśli atrybut ref elementu podrzędnego <Value> elementów <PrivateKey> lub <SecretKey> jest pusty lub nieokreślony, wdrożenie się nie uda.
InvalidVariableNameForSecret Ten błąd występuje, jeśli nazwa zmiennej przepływu podana w atrybucie ref elementu podrzędnego <Value> elementów <PrivateKey> lub <SecretKey> nie zawiera prywatnego prefiksu (private.).
InvalidSecretInConfig Ten błąd występuje, jeśli element podrzędny <Value> elementów <PrivateKey> lub <SecretKey> nie zawiera prywatnego prefiksu (private.).
InvalidTimeFormat Jeśli wartość podana w elemencie <NotBefore> nie ma obsługiwanego formatu, wdrożenie się nie uda.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "TokenExpired"
JWT.failed Wszystkie zasady JWT ustawiają tę samą zmienną w przypadku niepowodzenia. JWT.failed = true

Przykładowa odpowiedź na błąd

Kody błędów zasad JWT

W przypadku obsługi błędów sprawdzoną metodą jest przechwycenie części błędu errorcode. . Nie polegaj na tekście zawartym w pliku faultstring, ponieważ może się on zmienić.

Przykładowa reguła błędu

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

Zasady dotyczące JavaCallout

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 Fix
steps.javacallout.ExecutionError 500 Occurs when Java code throws an exception or returns null during the execution of a JavaCallout policy.

Deployment errors

These errors can occur when the proxy containing the policy is deployed.

Error name Fault string HTTP status Occurs when
ResourceDoesNotExist Resource with name [name] and type [type] does not exist N/A The file specified in the <ResourceURL> element does not exist.
JavaCalloutInstantiationFailed Failed to instantiate the JavaCallout Class [classname] N/A The class file specified in the <ClassName> element is not in the jar.
IncompatibleJavaVersion Failed to load java class [classname] definition due to - [reason] N/A See fault string. See also Supported software and supported versions.
JavaClassNotFoundInJavaResource Failed to find the ClassName in java resource [jar_name] - [class_name] N/A See fault string.
JavaClassDefinitionNotFound Failed to load java class [class_name] definition due to - [reason] N/A See fault string.
NoAppropriateConstructor No appropriate constructor found in JavaCallout class [class_name] N/A See fault string.
NoResourceForURL Could not locate a resource with URL [string] N/A See fault string.

Fault variables

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

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

Example error response

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

Example fault rule

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

Zasady dotyczące kodu JavaScript

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 Fix
steps.javascript.ScriptExecutionFailed 500 The JavaScript policy can throw many different types of ScriptExecutionFailed errors. Commonly seen types of errors include RangeError, ReferenceError, SyntaxError, TypeError, and URIError.
steps.javascript.ScriptExecutionFailedLineNumber 500 An error occurred in the JavaScript code. See the fault string for details. N/A
steps.javascript.ScriptSecurityError 500 A security error occurred when the JavaScript executed. See the fault string for details. N/A

Deployment errors

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

Error name Cause Fix
InvalidResourceUrlFormat If the format of the resource URL specified within the <ResourceURL> or the <IncludeURL> element of the JavaScript policy is invalid, then the deployment of the API proxy fails.
InvalidResourceUrlReference If the <ResourceURL> or the <IncludeURL> elements refer to a JavaScript file that does not exist, then the deployment of the API proxy fails. The referenced source file must exist either the API proxy, environment, or organization level.
WrongResourceType This error occurs during deployment if the <ResourceURL> or the <IncludeURL> elements of the JavaScript policy refer to any resource type other than jsc (JavaScript file).
NoResourceURLOrSource The deployment of the JavaScript policy can fail with this error if the <ResourceURL> element is not declared or if the resource URL is not defined within this element. <ResourceURL> element is a mandatory element. Or, The <IncludeURL> element is declared but the resource URL is not defined within this element. The <IncludeURL> element is optional but if declared, the resource URL must be specified within the <IncludeURL> element.

Fault variables

These variables are set when this policy triggers an error at runtime. 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 "ScriptExecutionFailed"
javascript.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. javascript.JavaScript-1.failed = true

Example error response

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

Example fault rule

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

Zasada JSONThreatProtection

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.jsonthreatprotection.ExecutionFailed 500 Zasada JSONThreatProtection może zgłaszać wiele różnych typów błędów ExecutionFailed. Większość z tych błędów występuje po przekroczeniu określonego progu ustawionego w zasadzie. Te typy błędów to między innymi: długość nazwy wpisu obiektu, liczba wpisów obiektu, liczba elementów tablicy, głębokość kontenera, długość wartości ciągu znaków. Ten błąd występuje też wtedy, gdy ładunek zawiera nieprawidłowy obiekt JSON.
steps.jsonthreatprotection.SourceUnavailable 500 Ten błąd występuje, jeśli komunikat określona w elemencie <Source> to:
    .
  • Poza zakresem (niedostępne w konkretnym procesie, w którym są realizowane zasady)
  • Nie jest jedną z prawidłowych wartości request, response, lub message
steps.jsonthreatprotection.NonMessageVariable 500 Ten błąd występuje, jeśli element <Source> jest ustawiony na zmienną, która jest innego typu wiadomość.

Błędy wdrażania

Brak.

Zmienne błędów

Te zmienne są ustawiane, gdy ta zasada wywołuje błąd. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "SourceUnavailable"
jsonattack.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. jsonattack.JTP-SecureRequest.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Typy zasad JSONThreatProtection definiują te kody błędów:

Zasady dotyczące konwersji JSON na XML

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.jsontoxml.ExecutionFailed 500 Ładunek wejściowy (JSON) jest pusty lub dane wejściowe (JSON) przekazane do zasady JSON na XML to jest nieprawidłowy lub źle sformułowany.
steps.jsontoxml.InCompatibleTypes 500 Ten błąd występuje, jeśli typ zmiennej zdefiniowanej w elemencie <Source> i elementy <OutputVariable> są różne. Należy koniecznie doprecyzować, zmiennych zawartych w elementach <Source> i <OutputVariable> dopasowania. Prawidłowe typy to message i string.
steps.jsontoxml.InvalidSourceType 500 Ten błąd występuje, jeśli typ zmiennej używanej do zdefiniowania elementu <Source> jest nieprawidłowy. Prawidłowe typy zmiennych to message i string.
steps.jsontoxml.OutputVariableIsNotAvailable 500 Ten błąd występuje, jeśli zmienna określona w elemencie <Source> pliku JSON do Zasada XML jest typu „ciąg znaków”, a element <OutputVariable> nie został zdefiniowany. Element <OutputVariable> jest wymagany, gdy zmienna zdefiniowana w parametrze <Source> element jest typu „ciąg znaków”.
steps.jsontoxml.SourceUnavailable 500 Ten błąd występuje, jeśli komunikat określona w elemencie <Source> zasady JSON na XML to:
    .
  • poza zakresem (niedostępne w ramach konkretnego procesu, w którym są realizowane zasady) lub
  • nie można rozwiązać (nie jest zdefiniowany)

Błędy wdrażania

Brak.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "SourceUnavailable"
jsontoxml.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. jsontoxml.JSON-to-XML-1.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasady dotyczące operacji KeyValueMapOperations

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.keyvaluemapoperations.SetVariableFailed 500

Ten błąd występuje, gdy próbujesz pobrać wartość z zaszyfrowanej mapy par kluczy i ustawić wartość na zmienną, której nazwa nie ma prefiksu private. Prefiks, który jest wymagany do podstawowych działań związanych z bezpieczeństwem podczas debugowania, ukrywa zaszyfrowane wartości w sesjach śledzenia serwera proxy interfejsu API i debugowania.

steps.keyvaluemapoperations.UnsupportedOperationException 500

Ten błąd występuje, jeśli atrybut mapIdentifier jest ustawiony na pusty ciąg znaków w zasadzie operacji mapowania par klucz-wartość.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidIndex Jeśli atrybut index określony w elemencie <Get> w zasadzie operacji mapowania par klucz-wartość ma wartość zero lub jest liczbą ujemną, wdrożenie serwera proxy interfejsu API się nie uda. Indeks zaczyna się od 1, więc indeks o wartości 0 lub ujemna liczba całkowita jest uznawany za nieprawidłowy.
KeyIsMissing Ten błąd występuje, jeśli całkowicie brakuje elementu <Key> lub brakuje elementu <Parameter> w elemencie <Key> poniżej <Entry> elementu <InitialEntries> zasad operacji mapy klucz-wartość.
ValueIsMissing Ten błąd występuje, jeśli brakuje elementu <Value> pod elementem <Entry> elementu <InitialEntries> zasady operacji na mapie par klucz-wartość.

Zasady LDAP

Ta zasada używa tych kodów błędów:

Kod błędu przekaz,
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.

Zasady dotyczące rejestrowania wiadomości

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
steps.messagelogging.StepDefinitionExecutionFailed 500 See fault string.

Deployment errors

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

Error name Cause Fix
InvalidProtocol The deployment of the MessageLogging policy can fail with this error if the protocol specified within the <Protocol> element is not valid. The valid protocols are TCP and UDP. For sending syslog messages over TLS/SSL, only TCP is supported.
InvalidPort The deployment of the MessageLogging policy can fail with this error if the port number is not specified within the <Port> element or if it is not valid. The port number must be an integer greater than zero.

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 "StepDefinitionExecutionFailed"
messagelogging.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. messagelogging.ML-LogMessages.failed = true

Example error response

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

Example fault rule

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

Zasady OASValidation

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna
steps.oasvalidation.Failed 500 Nie można zweryfikować treści wiadomości żądania pod kątem podanej specyfikacji OpenAPI.
steps.oasvalidation.SourceMessageNotAvailable 500

Zmienna określona w elemencie <Source> zasady jest poza zakresem lub nie można jej rozpoznać.

steps.oasvalidation.NotMessageVariable 500

Element <Source> jest ustawiony na zmienną, która nie jest typu message.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna
ResourceDoesNotExist Specyfikacja OpenAPI, do której odwołuje się element <OASResource>, nie istnieje.
ResourceCompileFailed Specyfikacja OpenAPI dołączonej do wdrożenia zawiera błędy, które uniemożliwiają jej skompilowanie. Ogólnie oznacza to, że specyfikacja nie jest poprawnie sformułowaną specyfikacją OpenAPI 3.0.
BadResourceURL Nie można przetworzyć specyfikacji OpenAPI, do której odwołuje się element <OASResource>. Ten błąd może wystąpić, jeśli plik nie jest plikiem JSON lub YAML albo adres URL pliku nie jest poprawnie określony.

Zmienne błędów

Te zmienne są ustawiane, gdy zasada wywołuje błąd w czasie działania. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy środowiska wykonawczego powyżej. Nazwa błędu to ostatnia część kodu. fault.name Matches "ResourceDoesNotExist"
oasvalidation.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. oasvalidation.myoaspolicy.failed = true

Zasada PopulateCache

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Występuje, gdy
policies.populatecache.EntryCannotBeCached 500 Wpisu nie można zapisać w pamięci podręcznej. Obiekt wiadomości zapisywany w pamięci podręcznej nie jest instancją klasy, którą można serializować.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.

Nazwa błędu Przyczyna Napraw
InvalidCacheResourceReference Ten błąd występuje, jeśli element <CacheResource> w zasadzie PopulationCache ma wartość nazwa, która nie istnieje w środowisku, w którym wdrażany jest serwer proxy interfejsu API.
CacheNotFound Pamięć podręczna określona w elemencie <CacheResource> nie istnieje.

Zmienne błędów

Te zmienne są ustawiane, gdy ta zasada wywołuje błąd. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. populatecache.POP-CACHE-1.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasady dotyczące pamięci podręcznej wyszukiwania

W tej sekcji opisujemy komunikaty o błędach i zmienne przepływu ustawiane, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły błędów dla serwera proxy. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Prefiks kodu błędu

Nie dotyczy

Błędy w czasie wykonywania

Ta zasada nie powoduje błędów podczas działania.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidCacheResourceReference Ten błąd występuje, jeśli element <CacheResource> jest ustawiony na nazwę, która nie istnieje w środowisku, w którym wdrażany jest serwer proxy interfejsu API.
InvalidTimeout Jeśli element <CacheLookupTimeoutInSeconds> jest ustawiony na liczbę ujemną, wdrożenie serwera proxy interfejsu API się nie uda.
CacheNotFound Ten błąd występuje, jeśli pamięć podręczna wymieniona w komunikacie o błędzie nie została utworzona w konkretnym komponencie procesora wiadomości.

Zmienne błędów

Nie dotyczy

Przykładowa odpowiedź na błąd

Nie dotyczy

Zasada InvalidateCache

W tej sekcji opisujemy komunikaty o błędach i zmienne przepływu ustawiane, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły błędów dla serwera proxy. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Prefiks kodu błędu

Nie dotyczy

Błędy w czasie wykonywania

Ta zasada nie powoduje błędów podczas działania.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidCacheResourceReference Ten błąd występuje, jeśli element <CacheResource> w zasadzie InvalidateCache jest ustawiony na nazwę, która nie istnieje w środowisku, w którym wdrażany jest serwer proxy interfejsu API.
CacheNotFound Ten błąd występuje, jeśli pamięć podręczna wymieniona w komunikacie o błędzie nie została utworzona w konkretnym komponencie procesora wiadomości.

Zmienne błędów

Nie dotyczy

Przykładowa odpowiedź na błąd

Nie dotyczy

Zasada ResponseCache

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

Error code prefix

N/A

Runtime errors

This policy does not throw any runtime errors.

Deployment errors

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

Error name Cause Fix
InvalidTimeout If the <CacheLookupTimeoutInSeconds> element of the ResponseCache policy is set to a negative number, then the deployment of the API proxy fails.
InvalidCacheResourceReference This error occurs if the <CacheResource> element in a ResponseCache policy is set to a name that does not exist in the environment where the API proxy is being deployed.
ResponseCacheStepAttachmentNotAllowedReq This error occurs if the same ResponseCache policy is attached to multiple request paths within any flows of an API proxy.
ResponseCacheStepAttachmentNotAllowedResp This error occurs if the same ResponseCache policy is attached to multiple response paths within any flows of an API proxy.
InvalidMessagePatternForErrorCode This error occurs if either the <SkipCacheLookup> or the <SkipCachePopulation> element in a ResponseCache policy contains an invalid condition.
CacheNotFound This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component.

Fault variables

N/A

Example error response

N/A

Zasady dotyczące OAuth 2

W tej sekcji opisaliśmy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów, które są ustawiane przez Edge, gdy ta zasada powoduje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów, aby radzić sobie z błędami. Więcej informacji znajdziesz w artykułach Więcej informacji o błędach związanych z naruszeniem zasadRozwiązywanie problemów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Wyjątki zgłaszane przez operacje
steps.oauth.v2.access_token_expired 401 Token dostępu wygasł.

VerifyAccessToken
InvalidateToken

steps.oauth.v2.access_token_not_approved 401 Token dostępu został unieważniony. VerifyAccessToken
steps.oauth.v2.apiresource_doesnot_exist 401 Żądany zasób nie istnieje w żadnym z produktów interfejsu API powiązanych z tokenem dostępu. VerifyAccessToken
steps.oauth.v2.FailedToResolveAccessToken 500 Zasady oczekują znalezienia tokena dostępu w zmiennej określonej w elemencie <AccessToken>, ale nie udało się rozwiązać zmiennej. GenerateAccessToken
steps.oauth.v2.FailedToResolveAuthorizationCode 500 Polityka oczekiwała znalezienia kodu autoryzacji w zmiennej określonej w elemencie <Code>, ale nie udało się rozwiązać zmiennej. GenerateAuthorizationCode
steps.oauth.v2.FailedToResolveClientId 500 Zasady oczekują znalezienia identyfikatora klienta w zmiennej określonej w elemencie <ClientId>, ale nie udało się rozwiązać zmiennej. GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.FailedToResolveRefreshToken 500 Reguła oczekiwała znalezienia tokena odświeżania w zmiennej określonej w elemencie <RefreshToken>, ale nie udało się odnaleźć tej zmiennej. RefreshAccessToken
steps.oauth.v2.FailedToResolveToken 500 Zasady miały znaleźć token w zmiennej określonej w elemencie <Tokens>, ale nie udało się zinterpretować zmiennej.

ValidateToken
InvalidateToken

steps.oauth.v2.InsufficientScope 403 Token dostępu przedstawiony w żądaniu ma zakres, który nie jest zgodny z zakresem określonym w zasadach weryfikacji tokena dostępu. Więcej informacji o zakresie znajdziesz w artykule Praca z zakresami OAuth2. VerifyAccessToken
steps.oauth.v2.invalid_access_token 401 Token dostępu wysłany z klienta jest nieprawidłowy. VerifyAccessToken
steps.oauth.v2.invalid_client 401

Ta nazwa błędu jest zwracana, gdy właściwość <GenerateResponse> w zasadzie jest ustawiona na true, a identyfikator klienta wysłany w żądaniu jest nieprawidłowy. Sprawdź, czy używasz prawidłowego klucza klienta i wartości tajnego dla aplikacji dewelopera powiązanej z serwerem proxy. Zwykle te wartości są wysyłane jako nagłówek autoryzacji podstawowej zakodowany w formacie Base64.

Uwaga: zalecamy zmianę warunków istniejących reguł błędów, aby uwzględnić nazwy invalid_client i InvalidClientIdentifier. Więcej informacji i przykład znajdziesz w informacjach o wersji z 16 września 2021 r.

GenerateAccessToken
RefreshAccessToken
steps.oauth.v2.InvalidRequest 400 Ta nazwa błędu jest używana w przypadku wielu różnych rodzajów błędów, zwykle w przypadku braku lub nieprawidłowego wysłania parametrów w żądaniu. Jeśli <GenerateResponse> jest ustawiony na false, użyj zmiennych dotyczących błędów (opisanych poniżej), aby pobrać szczegóły dotyczące błędu, takie jak nazwa i przyczyna błędu. GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken
steps.oauth.v2.InvalidAccessToken 401 W nagłówku autoryzacji brakuje słowa „Bearer”, które jest wymagane. Na przykład: Authorization: Bearer your_access_token VerifyAccessToken
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401

Serwer proxy interfejsu API nie znajduje się w usłudze powiązanej z tokiem dostępu.

Wskazówki: sprawdź, czy produkt powiązany z tokenem dostępu jest prawidłowo skonfigurowany. Jeśli na przykład używasz symboli wieloznacznych w ścieżkach zasobów, sprawdź, czy są one używane prawidłowo. Więcej informacji znajdziesz w artykule Tworzenie usług API.

Więcej informacji o przyczynach tego błędu znajdziesz też w tym poście na forum społeczności Apigee.

VerifyAccessToken
steps.oauth.v2.InvalidClientIdentifier 500

Ta nazwa błędu jest zwracana, gdy parametr <GenerateResponse> w zasadach ma wartość fałsz, a identyfikator klienta wysłany w żądaniu jest nieprawidłowy. Sprawdź, czy używasz prawidłowego klucza klienta i wartości tajnego dla aplikacji dewelopera powiązanej z proxy. Zwykle te wartości są wysyłane jako zakodowany w formacie Base64 nagłówek podstawowej autoryzacji.

Uwaga: w tej sytuacji ten błąd był nazywany invalid_client. Zalecamy zmianę warunków istniejących reguł błędów, aby uwzględniały nazwy invalid_client i InvalidClientIdentifier. Więcej informacji i przykład znajdziesz w informacjach o wersji z 16 września 2021 r.

GenerateAccessToken
RefreshAccessToken

steps.oauth.v2.InvalidParameter 500 Zasady muszą określać albo token dostępu, albo kod autoryzacji, ale nie oba. GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.InvalidTokenType 500 Element <Tokens>/<Token> wymaga podania typu tokena (na przykład refreshtoken). Jeśli klient przekaże nieprawidłowy typ, zostanie zgłoszony ten błąd. ValidateToken
InvalidateToken
steps.oauth.v2.MissingParameter 500 Typ odpowiedzi to token, ale nie określono typów dotacji. GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
steps.oauth.v2.UnSupportedGrantType 500

Klient określił typ grantu, który nie jest obsługiwany przez zasady (nie jest wymieniony w elemencie <SupportedGrantTypes>).

Uwaga: występuje obecnie błąd, który powoduje, że błędy dotyczące nieobsługiwanych typów grantów nie są prawidłowo zgłaszane. Jeśli wystąpi błąd nieobsługiwanego typu grantu, serwer proxy nie przechodzi do oczekiwanego przepływu danych w przypadku błędu.

GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.

Nazwa błędu Przyczyna
InvalidValueForExpiresIn

W przypadku elementu <ExpiresIn> prawidłowe wartości to dodatnie liczby całkowite i -1.

InvalidValueForRefreshTokenExpiresIn W przypadku elementu <RefreshTokenExpiresIn> prawidłowe wartości to dodatnie liczby całkowite i -1.
InvalidGrantType W elemencie <SupportedGrantTypes> podano nieprawidłowy typ uprawnień. Listę prawidłowych typów znajdziesz w dokumentacji zasad.
ExpiresInNotApplicableForOperation Upewnij się, że operacje określone w elemencie <Operations> obsługują wygaśnięcie. Na przykład operacja VerifyToken nie jest wywoływana.
RefreshTokenExpiresInNotApplicableForOperation Upewnij się, że operacje określone w elemencie <Operations> obsługują wygaśnięcie tokena odświeżania. Na przykład operacja VerifyToken nie jest wywoływana.
GrantTypesNotApplicableForOperation Upewnij się, że typy uprawnień określone w <SupportedGrantTypes> są obsługiwane w przypadku określonej operacji.
OperationRequired

W tej regule musisz określić operację za pomocą elementu <Operation>.

Uwaga: jeśli element <Operation> jest nieobecny, interfejs użytkownika zwraca błąd walidacji schematu.

InvalidOperation

W tych zasadach musisz określić prawidłową operację za pomocą elementu <Operation>.

Uwaga: jeśli element <Operation> jest nieprawidłowy, interfejs użytkownika zwraca błąd weryfikacji schematu.

TokenValueRequired W elemencie <Tokens> musisz podać wartość tokena <Token>.

Zmienne błędów

Te zmienne są ustawiane, gdy zasada powoduje błąd w czasie wykonywania.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu, jak podano w tabeli Błędy środowiska wykonawczego powyżej. Nazwa błędu to ostatni element kodu błędu. fault.name = "InvalidRequest"
oauthV2.policy_name.failed policy_name to nazwa zasady określona przez użytkownika, która spowodowała błąd. oauthV2.GenerateAccesstoken.failed = true
oauthV2.policy_name.fault.name policy_name to nazwa zasady określona przez użytkownika, która spowodowała błąd. oauthV2.GenerateAccesstoken.fault.name = InvalidRequest

Uwaga: w przypadku operacji VerifyAccessToken nazwa błędu zawiera ten przyrostek: keymanagement.service
Przykład: keymanagement.service.invalid_access_token

oauthV2.policy_name.fault.cause policy_name to nazwa zasady określona przez użytkownika, która spowodowała błąd. oauthV2.GenerateAccesstoken.cause = Required param : grant_type

Przykładowa odpowiedź na błąd

Te odpowiedzi są wysyłane z powrotem do klienta, jeśli element <GenerateResponse> ma wartość true.

Jeśli <GenerateResponse> ma wartość prawda, zasady zwracają błędy w tym formacie w przypadku operacji generujących tokeny i kody. Pełną listę znajdziesz w artykule Przewodnik po odpowiedziach HTTP błędów OAuth.

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

Jeśli <GenerateResponse> ma wartość prawda, zasady zwracają błędy w tym formacie w przypadku operacji weryfikacji i potwierdzania. Pełną listę znajdziesz w artykule Przewodnik po odpowiedziach HTTP błędów OAuth.

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

Przykładowa reguła błędu

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

Zasady dotyczące funkcji GetOAuthV2Info

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. The error names shown below are the strings that are assigned to the fault.name variable when an error occurs. See the Fault variables section below for more details.

Fault code HTTP status Cause
steps.oauth.v2.access_token_expired 500 The access token sent to the policy is expired.
steps.oauth.v2.authorization_code_expired 500 The authorization code sent to the policy is expired.
steps.oauth.v2.invalid_access_token 500 The access token sent to the policy is invalid.
steps.oauth.v2.invalid_client-invalid_client_id 500 The client ID sent to the policy is invalid.
steps.oauth.v2.invalid_refresh_token 500 The refresh token sent to the policy is invalid.
steps.oauth.v2.invalid_request-authorization_code_invalid 500 The authorization code sent to the policy is invalid.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Please see this Apigee Community post for information about troubleshooting this error.
steps.oauth.v2.refresh_token_expired 500 The refresh token sent to the policy is expired.

Deployment errors

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

Fault variables

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

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "IPDeniedAccess"
oauthV2.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. oauthV2.GetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name is the user-specified name of the policy that threw the fault. oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id
oauthV2.policy_name.fault.cause policy_name is the user-specified name of the policy that threw the fault. oauthV2.GetTokenInfo.cause = ClientID is Invalid

Example error response

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

Example fault rule

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

Zasady dotyczące SetOAuthV2Info

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
steps.oauth.v2.access_token_expired 500 The access token sent to the policy is expired.
steps.oauth.v2.invalid_access_token 500 The access token sent to the policy is invalid.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Please see this Apigee Community post for information about troubleshooting this error.

Deployment errors

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

Fault variables

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

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

Example error response

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

Example fault rule

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

Zasady dotyczące usuwania OAuthV2Info

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna
steps.oauth.v2.invalid_access_token 401 Token dostępu wysłany do zasady jest nieprawidłowy.
steps.oauth.v2.invalid_request-authorization_code_invalid 401 Kod autoryzacji wysłany do zasady jest nieprawidłowy.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Więcej informacji: ten post na karcie Społeczność Apigee z informacjami o rozwiązywaniu tego problemu.

Błędy wdrażania

Więcej informacji o błędach wdrażania znajdziesz w komunikacie zgłoszonym w interfejsie.

Zmienne błędów

Te zmienne są ustawiane, gdy ta zasada wywołuje błąd w czasie działania.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. oauthV2.DeleteTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. oauthV2.DeleteTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. oauthV2.DeleteTokenInfo.cause = Invalid Access Token

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasady dotyczące OAuth 1.0a

The OAuthV1 Policy type defines the following error codes.

For OAuth-related HTTP error codes, see OAuth HTTP error response reference.

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

Zasady dotyczące metody GetOAuthV1Info

W zasadach Get OAuth 1.0a Information nie podano kodów błędów.

Usuń zasadę DeleteOAuthV1Info

Jeśli operacja się uda, zasada zwraca stan 200.

W przypadku niepowodzenia zasada zwraca kod 404 i wyświetla wyniki podobne do tych (w zależności od tego, czy usuwasz token dostępu, token żądania lub weryfikator).

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

Zasady dotyczące PythonScript

W tej sekcji opisano zwracane kody błędów i komunikaty o błędach oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. To ważna informacja jeśli tworzysz reguły błędów obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.script.ScriptEvaluationFailed 500 Zasada PythonScript może zgłaszać różne typy błędów ScriptExecutionFailed. Powszechnie które obejmują błędy NameError i ZeroDivisionError.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.

Nazwa błędu Przyczyna Napraw
InvalidResourceUrlFormat Jeśli format adresu URL zasobu podany w tagu <ResourceURL> lub element <IncludeURL> zasady PythonScript jest nieprawidłowy, nie uda się wdrożyć serwera proxy interfejsu API.
InvalidResourceUrlReference Jeśli elementy <ResourceURL> lub <IncludeURL> odwołują się do pliku PythonScript, który nie istnieje, wdrożenie serwera proxy interfejsu API się nie uda. Wskazany plik źródłowy musi istnieć na poziomie serwera proxy interfejsu API, środowiska lub organizacji.

Zmienne błędów

Te zmienne są ustawiane, gdy ta zasada wywołuje błąd w czasie działania. Aby dowiedzieć się więcej, zapoznaj się z artykułem Co musisz wiedzieć o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "ScriptExecutionFailed"
pythonscript.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. pythonscript.PythonScript-1.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasady dotyczące limitów

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 Fix
policies.ratelimit.FailedToResolveQuotaIntervalReference 500 Occurs if the <Interval> element is not defined within the Quota policy. This element is mandatory and used to specify the interval of time applicable to the quota. The time interval can be minutes, hours, days, weeks, or months as defined with the <TimeUnit> element.
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference 500 Occurs if the <TimeUnit> element is not defined within the Quota policy. This element is mandatory and used to specify the unit of time applicable to the quota. The time interval can be in minutes, hours, days, weeks, or months.
policies.ratelimit.InvalidMessageWeight 500 Occurs if the value of the <MessageWeight> element specified through a flow variable is invalid (a non-integer value).
policies.ratelimit.QuotaViolation 500 The quota limit was exceeded. N/A

Deployment errors

Error name Cause Fix
InvalidQuotaInterval If the quota interval specified in the <Interval> element is not an integer, then the deployment of the API proxy fails. For example, if the quota interval specified is 0.1 in the <Interval> element, then the deployment of the API proxy fails.
InvalidQuotaTimeUnit If the time unit specified in the <TimeUnit> element is unsupported, then the deployment of the API proxy fails. The supported time units are minute, hour, day, week, and month.
InvalidQuotaType If the type of the quota specified by the type attribute in the <Quota> element is invalid, then the deployment of the API proxy fails. The supported quota types are default, calendar, flexi, and rollingwindow.
InvalidStartTime If the format of the time specified in the <StartTime> element is invalid, then the deployment of the API proxy fails. The valid format is yyyy-MM-dd HH:mm:ss, which is the ISO 8601 date and time format. For example, if the time specified in the <StartTime> element is 7-16-2017 12:00:00 then the deployment of the API proxy fails.
StartTimeNotSupported If the <StartTime> element is specified whose quota type is not calendar type, then the deployment of the API proxy fails. The <StartTime> element is supported only for the calendar quota type. For example, if the type attribute is set to flexi or rolling window in the <Quota> element, then the deployment of the API proxy fails.
InvalidTimeUnitForDistributedQuota If the <Distributed> element is set to true and the <TimeUnit> element is set to second then the deployment of the API proxy fails. The timeunit second is invalid for a distributed quota.
InvalidSynchronizeIntervalForAsyncConfiguration If the value specified for the <SyncIntervalInSeconds> element within the <AsynchronousConfiguration> element in a Quota policy is less than zero, then the deployment of the API proxy fails.
InvalidAsynchronizeConfigurationForSynchronousQuota If the value of the <AsynchronousConfiguration> element is set to true in a Quota policy, which also has asynchronous configuration defined using the <AsynchronousConfiguration> element, then the deployment of the API proxy fails.

Fault variables

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

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

Example error response

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

Example fault rule

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

Zasada ResetQuota

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
policies.resetquota.InvalidRLPolicy 500 Zasada dotycząca limitu określona w elemencie <Quota> zasady resetowania limitu nie jest zdefiniowana w serwerze proxy interfejsu API, dlatego jest niedostępna podczas tego procesu. Element <Quota> jest obowiązkowy i wskazuje zasadę dotyczącą docelowego limitu, której licznik należy zaktualizować za pomocą zasady resetowania limitu.
policies.resetquota.FailedToResolveAllowCountRef Nie dotyczy Odniesienia do zmiennej zawierającej liczbę dozwolonych w elemencie <Allow> zasady nie można przypisać do wartości. Ten element jest wymagany i określa kwotę, o którą ma zostać zmniejszony licznik limitu.
policies.resetquota.FailedToResolveRLPolicy 500 Nie można znaleźć zmiennej, do której odwołuje się atrybut ref w elemencie <Quota>.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidCount Jeśli liczba określona w elemencie <Allow> zasady resetowania limitów nie jest liczbą całkowitą, wdrożenie serwera proxy interfejsu API nie powiedzie się.

Zasada RaiseFault

W tej sekcji opisano zwracane kody błędów i komunikaty o błędach oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji: Co musisz wiedzieć o błędach związanych z naruszeniem zasad Obsługa błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna
steps.raisefault.RaiseFault 500 Zobacz ciąg błędu.

Błędy wdrażania

Brak.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli tabeli Błędy czasu działania powyżej. Nazwa błędu jest ostatnia który jest częścią kodu błędu. fault.name = "RaiseFault"
raisefault.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która wyrzucił błąd. raisefault.RF-ThrowError.failed = true

Przykładowa odpowiedź na błąd

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

Zasady ochrony wyrażeń regularnych

W tej sekcji opisujemy kody błędów, zwracane komunikaty i zmienne błędów ustawione przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, aby wiedzieć, czy opracowujesz reguły dotyczące błędów w przypadku błędów. Jeśli chcesz przechwycić błąd i zgłosić własny błąd niestandardowy, ustaw atrybut continueOnError="true" w głównym elemencie zasad. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy zwracane z zasad Edge mają spójny format opisany w Informacjach na temat kodów błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu przekaz,
ExecutionFailed Nie udało się wykonać definicji kroku RegularExpressionProtection {0}. Przyczyna: {1}
InstantiationFailed Nie udało się utworzyć instancji kroku definicji kroku RegularExpressionProtection {0}
NonMessageVariable Zmienna {0} nie przyjmuje wartości do komunikatu
SourceMessageNotAvailable Komunikat {0} nie jest dostępny dla określenia kroków definicji kroków RegularExpressionProtection {1}
ThreatDetected Wykryto zagrożenie związane z wyrażeniem regularnym w {0}: wyrażenie regularne: {1} wejściowe: {2}
VariableResolutionFailed Nie udało się znaleźć zmiennej {0}

Błędy wdrażania

Kod błędu przekaz, Napraw
CannotBeConvertedToNodeset RegularExpressionProtection {0}: wynik funkcji xpath {1} nie może zostać przekonwertowany na zbiór węzłów. Kontekst {2}
DuplicatePrefix RegularExpressionProtection {0}: zduplikowany prefiks {1}
EmptyJSONPathExpression RegularExpressionProtection{0}: puste wyrażenie JSONPath
EmptyXPathExpression RegularExpressionProtection{0}: puste wyrażenie XPath
InvalidRegularExpression RegularExpressionProtection {0}: nieprawidłowe wyrażenie regularne {1}, kontekst {2}
JSONPathCompilationFailed RegularExpressionProtection {0}: nie udało się skompilować obiektu jsonpath {1}. Kontekst {2}
NONPusty przedrostek mapowany do pustego identyfikatora URI RegularExpressionProtection {0}: niepustego prefiksu {1} nie można zmapować na pusty identyfikator URI
NoPatternsToEnforce RegularExpressionProtection {0}: brak wzorców do wyegzekwowania w {1}
NothingToEnforce RegularExpressionProtection{0}: co najmniej jedna z tych wartości: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload
XPathCompilationFailed RegularExpressionProtection {0}: nie udało się skompilować pliku xpath {1}. Kontekst {2}

Zmienne błędów

Te zmienne są ustawiane, gdy zasada wywołuje błąd. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli powyżej. fault.name Matches "ThreatDetected"
regularexpressionprotection.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

Zasady dotyczące SOAPMessageValidation

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.messagevalidation.SourceMessageNotAvailable 500

Ten błąd występuje, jeśli zmienna określona w elemencie <Source> zasady ma jedną z tych wartości:

  • poza zakresem (niedostępne w konkretnym procesie, w którym jest wykonywana zasada)
  • lub
  • Nie można rozwiązać (nie określono)
steps.messagevalidation.NonMessageVariable 500

Ten błąd występuje, jeśli element <Source> w zasadzie SOAPMessageValidation jest ustawiony na zmienną, która nie jest typu komunikat.

Zmienne typu wiadomości reprezentują całe żądania i odpowiedzi HTTP. Wbudowane zmienne przepływu Edge request, response i message mają typ komunikatu. Więcej informacji o zmiennych wiadomości znajdziesz w dokumentacji zmiennych.

steps.messagevalidation.Failed 500 Ten błąd występuje, jeśli zasada SOAPMessageValidation nie sprawdza poprawności ładunku wejściowego wiadomości w odniesieniu do schematu XSD lub definicji WSDL. Ten błąd może wystąpić również wtedy, gdy w wiadomości z ładunkiem występuje nieprawidłowy format JSON lub XML.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
InvalidResourceType Element <ResourceURL> w zasadzie SOAPMessageValidation jest ustawiony na typ zasobu, który nie jest obsługiwany przez tę zasadę.
ResourceCompileFailed Skrypt zasobów, do którego odwołuje się element <ResourceURL> zasady SOAPMessageValidation, zawiera błąd uniemożliwiający mu kompilowanie.
RootElementNameUnspecified Element <Element> w zasadzie SOAPMessageValidation nie zawiera nazwy elementu głównego.
InvalidRootElementName Element <Element> w zasadzie SOAPMessageValidation zawiera nazwę elementu głównego, która jest niezgodna z regułami XML dotyczącymi prawidłowych nazw elementów.

Zasady dotyczące oświadczenia SAML

W tej sekcji opisano zwracane kody błędów i komunikaty o błędach i zmiennych błędów, które są ustawiane przez Edge, gdy ta zasada wywołuje błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.

Nazwa błędu Przyczyna Napraw
SourceNotConfigured Co najmniej jeden z następujących elementów metody Validate SAML Assertion zasada nie jest zdefiniowana lub pusta: <Source>, <XPath>, <Namespaces>, <Namespace>.
TrustStoreNotConfigured Jeśli element <TrustStore> jest pusty lub nie został określony w polu Po sprawdzeniu zasady SAMLAssertion nie uda się wdrożyć serwera proxy interfejsu API. Wymagany jest prawidłowy magazyn zaufania.
NullKeyStoreAlias Jeśli element podrzędny <Alias> jest pusty lub nie został określony w elemencie <Keystore> elementu zasad Generate SAML Assertion policy, a następnie wdrożenia interfejsu API. serwer proxy nie działa. Wymagany jest prawidłowy alias magazynu kluczy.
NullKeyStore Jeśli element podrzędny <Name> jest pusty lub nie został określony w elemencie <Keystore> elementu zasady GenerateSAMLAssertion, a następnie wdrożenie interfejsu API serwer proxy nie działa. Wymagana jest prawidłowa nazwa magazynu kluczy.
NullIssuer Jeśli element <Issuer> jest pusty lub nie został określony w zasadzie Generate SAML (Wygeneruj SAML) Zasada asercji, wtedy wdrożenie serwera proxy interfejsu API się nie uda. O wymagana jest prawidłowa wartość <Issuer>.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu . Nazwa błędu to ostatnia część kodu błędu. fault.name = "InvalidMediaTpe"
GenerateSAMLAssertion.failed W przypadku walidacji konfiguracji zasady asercji SAML prefiks błędu to ValidateSAMLAssertion GenerateSAMLAssertion.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasady dotyczące ServiceCallout

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.servicecallout.ExecutionFailed 500

Ten błąd może wystąpić, gdy:

  • zasady mają obsługiwać dane wejściowe, które są uszkodzone lub z innego powodu nieprawidłowe.
  • usługa docelowa backendu zwraca stan błędu (domyślnie 4xx lub 5xx).
steps.servicecallout.RequestVariableNotMessageType 500 Zmienna żądania określona w zasadzie nie jest typu Wiadomość. Na przykład, jeśli jest to ciąg znaków lub inny typ niebędący wiadomością, pojawi się ten błąd.
steps.servicecallout.RequestVariableNotRequestMessageType 500 Zmienna żądania określona w zasadzie nie jest typu Request Message. Dla: np. w przypadku typu odpowiedzi pojawi się ten błąd.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.

Nazwa błędu Przyczyna Napraw
URLMissing Element <URL> w elemencie <HTTPTargetConnection> brakuje pola lub pole jest puste.
ConnectionInfoMissing Ten błąd występuje, jeśli zasada nie ma <HTTPTargetConnection> lub <LocalTargetConnection> .
InvalidTimeoutValue Ten błąd występuje, jeśli wartość parametru <Timeout> jest ujemna lub wynosi 0.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name = "RequestVariableNotMessageType"
servicecallout.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. servicecallout.SC-GetUserData.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasady dotyczące SpikeArrest

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 Fix
policies.ratelimit.FailedToResolveSpikeArrestRate 500 This error occurs if the reference to the variable containing the rate setting within the <Rate> element cannot be resolved to a value within the Spike Arrest policy. This element is mandatory and used to specify the spike arrest rate in the form of intpm or intps.
policies.ratelimit.InvalidMessageWeight 500 This error occurs if the value specified for the <MessageWeight> element through a flow variable is invalid (a non-integer value).
policies.ratelimit.SpikeArrestViolation 429

The rate limit was exceeded.

Deployment errors

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

Error name Cause Fix
InvalidAllowedRate If the spike arrest rate specified in the <Rate> element of the Spike Arrest Policy is not an integer or if the rate does not have ps or pm as a suffix, then the deployment of the API proxy fails.

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 "SpikeArrestViolation"
ratelimit.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. ratelimit.SA-SpikeArrestPolicy.failed = true

Example error response

Shown below is an example error response:

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

Example fault rule

Shown below is an example fault rule to handle a SpikeArrestViolation fault:

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

Zasady dotyczące StatisticsCollector

W tej sekcji opisaliśmy komunikaty o błędach i zmienne przepływu, które są ustawiane, gdy ta zasada powoduje błąd. Te informacje są ważne, jeśli tworzysz reguły błędów dla serwera proxy. Więcej informacji znajdziesz w artykułach Więcej informacji o błędach związanych z naruszeniem zasadRozwiązywanie problemów.

Błędy w czasie wykonywania

Brak.

Błędy wdrażania

Nazwa błędu Przyczyna Napraw
UnsupportedDatatype Jeśli typ zmiennej określony przez atrybut ref w elemencie <Statistic> zasad Zbierania statystyk nie jest obsługiwany, wdrożenie serwera proxy interfejsu API zakończy się niepowodzeniem. Obsługiwane typy danych: string, integer, float, long, double i boolean.
InvalidName Jeśli nazwa używana do odwoływania się do danych zebranych dla określonej zmiennej zdefiniowanej w elemencie <Statistic> w zasadach Zbierania statystyk jest niezgodna ze zmienną zdefiniowaną przez system, wdrożenie serwera proxy interfejsu API się nie powiedzie. Niektóre znane zmienne zdefiniowane w systemie to organizationenvironment.
DatatypeMissing Jeśli brakuje typu zmiennej określonego przez atrybut ref w elemencie <Statistic> zasady Zbierania statystyk, wdrożenie serwera proxy interfejsu API się nie powiedzie.

Zmienne błędów

Brak.

Zasady dotyczące weryfikacji klucza API

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>

Zasady dotyczące weryfikacji JWS

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Występuje, gdy
steps.jws.AlgorithmInTokenNotPresentInConfiguration 401 Występuje, gdy zasada weryfikacji ma wiele algorytmów
steps.jws.AlgorithmMismatch 401 Algorytm określony w nagłówku przez zasadę generowania nie jest zgodny z algorytmem określonym w zasadzie weryfikacji. Podane algorytmy muszą się zgadzać.
steps.jws.ContentIsNotDetached 401 Wartość <DetachedContent> jest określana, gdy JWS nie zawiera odłączonego ładunku treści.
steps.jws.FailedToDecode 401 Nie udało się zdekodować JWS za pomocą zasady. Być może JWS jest uszkodzony.
steps.jws.InsufficientKeyLength 401 Dla klucza krótszego niż 32 bajty dla algorytmu HS256
steps.jws.InvalidClaim 401 Brak zgodności z deklaracją lub zgłoszeniem albo brak zgodności nagłówka lub nagłówka.
steps.jws.InvalidCurve 401 Krzywa określona przez klucz jest nieprawidłowa dla algorytmu krzywych eliptycznych.
steps.jws.InvalidJsonFormat 401 W nagłówku JWS znaleziono nieprawidłowy kod JSON.
steps.jws.InvalidJws 401 Ten błąd występuje, gdy weryfikacja podpisu JWS nie powiedzie się.
steps.jws.InvalidPayload 401 Ładunek JWS jest nieprawidłowy.
steps.jws.InvalidSignature 401 Element <DetachedContent> jest pominięty, a JWS ma odłączony ładunek treści.
steps.jws.KeyIdMissing 401 Zasada weryfikacji używa JWKS jako źródła kluczy publicznych, ale podpisany JWS nie zawiera w nagłówku właściwości kid.
steps.jws.KeyParsingFailed 401 Nie udało się przeanalizować klucza publicznego na podstawie podanych informacji o kluczu.
steps.jws.MissingPayload 401 Brak ładunku JWS.
steps.jws.NoAlgorithmFoundInHeader 401 Występuje, gdy JWS pomija nagłówek algorytmu.
steps.jws.NoMatchingPublicKey 401 Zasada weryfikacji używa JWKS jako źródła kluczy publicznych, ale kid w podpisanym JWS nie jest wymieniony w JWKS.
steps.jws.UnhandledCriticalHeader 401 Nagłówek znaleziony przez zasadę weryfikacji JWS w nagłówku crit nie jest wymieniony w zasadzie KnownHeaders.
steps.jws.UnknownException 401 Wystąpił nieznany wyjątek.
steps.jws.WrongKeyType 401 Podano nieprawidłowy typ klucza. Możesz na przykład podać klucz RSA dla algorytmu krzywych eliptycznych lub klucz krzywej dla algorytmu RSA.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Występuje, gdy
InvalidAlgorithm Jedyne prawidłowe wartości to: 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

Inne możliwe błędy wdrażania.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "TokenExpired"
JWS.failed Wszystkie zasady JWS ustawiają tę samą zmienną w przypadku awarii. jws.JWS-Policy.failed = true

Przykładowa odpowiedź na błąd

W przypadku obsługi błędów sprawdzoną metodą jest przechwycenie części błędu errorcode. . Nie polegaj na tekście zawartym w pliku faultstring, ponieważ może się on zmienić.

Przykładowa reguła błędu

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

Zasady dotyczące VerifyJWT

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 Occurs when
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 Occurs when the verification policy has multiple algorithms.
steps.jwt.AlgorithmMismatch 401 The algorithm specified in the Generate policy did not match the one expected in the Verify policy. The algorithms specified must match.
steps.jwt.FailedToDecode 401 The policy was unable to decode the JWT. The JWT is possibly corrupted.
steps.jwt.GenerationFailed 401 The policy was unable to generate the JWT.
steps.jwt.InsufficientKeyLength 401 For a key less than 32 bytes for the HS256 algorithm, less than 48 bytes for the HS386 algortithm, and less than 64 bytes for the HS512 algorithm.
steps.jwt.InvalidClaim 401 For a missing claim or claim mismatch, or a missing header or header mismatch.
steps.jwt.InvalidCurve 401 The curve specified by the key is not valid for the Elliptic Curve algorithm.
steps.jwt.InvalidJsonFormat 401 Invalid JSON found in the header or payload.
steps.jwt.InvalidToken 401 This error occurs when the JWT signature verification fails.
steps.jwt.JwtAudienceMismatch 401 The audience claim failed on token verification.
steps.jwt.JwtIssuerMismatch 401 The issuer claim failed on token verification.
steps.jwt.JwtSubjectMismatch 401 The subject claim failed on token verification.
steps.jwt.KeyIdMissing 401 The Verify policy uses a JWKS as a source for public keys, but the signed JWT does not include a kid property in the header.
steps.jwt.KeyParsingFailed 401 The public key could not be parsed from the given key information.
steps.jwt.NoAlgorithmFoundInHeader 401 Occurs when the JWT contains no algorithm header.
steps.jwt.NoMatchingPublicKey 401 The Verify policy uses a JWKS as a source for public keys, but the kid in the signed JWT is not listed in the JWKS.
steps.jwt.SigningFailed 401 In GenerateJWT, for a key less than the minimum size for the HS384 or HS512 algorithms
steps.jwt.TokenExpired 401 The policy attempts to verify an expired token.
steps.jwt.TokenNotYetValid 401 The token is not yet valid.
steps.jwt.UnhandledCriticalHeader 401 A header found by the Verify JWT policy in the crit header is not listed in KnownHeaders.
steps.jwt.UnknownException 401 An unknown exception occurred.
steps.jwt.WrongKeyType 401 Wrong type of key specified. For example, if you specify an RSA key for an Elliptic Curve algorithm, or a curve key for an RSA algorithm.

Deployment errors

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

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

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "TokenExpired"
JWT.failed Wszystkie zasady JWT ustawiają tę samą zmienną w przypadku niepowodzenia. JWT.failed = true

Przykładowa odpowiedź na błąd

Kody błędów zasad JWT

W przypadku obsługi błędów sprawdzoną metodą jest przechwycenie części błędu errorcode. . Nie polegaj na tekście zawartym w pliku faultstring, ponieważ może się on zmienić.

Przykładowa reguła błędu

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

Zasada XMLThreatProtection

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.xmlthreatprotection.ExecutionFailed 500 Zasada XMLThreatProtection może zgłaszać wiele różnych typów błędów ExecutionFailed. Większość z tych błędów występuje po przekroczeniu określonego progu ustawionego w zasadzie. Te typy błędów to między innymi: długość nazwy elementu, liczba elementów podrzędnych, głębokość węzła, liczba atrybutów, długość nazwy atrybutu, i wiele innych. Pełną listę znajdziesz w temacie Rozwiązywanie problemów z błędami w czasie działania zasady XMLThreatProtection.
steps.xmlthreatprotection.InvalidXMLPayload 500 Ten błąd występuje, jeśli wejściowy ładunek komunikatu określony przez element <Source> zasady XMLThreatProtection nie jest prawidłowym dokumentem XML.
steps.xmlthreatprotection.SourceUnavailable 500 Ten błąd występuje, jeśli komunikat określona w elemencie <Source> to:
    .
  • Poza zakresem (niedostępne w konkretnym procesie, w którym są realizowane zasady)
  • Nie jest jedną z prawidłowych wartości request, response, lub message
steps.xmlthreatprotection.NonMessageVariable 500 Ten błąd występuje, jeśli element <Source> jest ustawiony na zmienną, która jest innego typu wiadomość.

Uwagi:

  • Nazwa błędu ExecutionFailed to domyślna nazwa błędu i będzie zwracana niezależnie od tego, typ wykrytego błędu; ale można je zmienić, ustawiając usłudze na poziomie organizacji. Jeśli określisz tę właściwość, nazwa błędu będzie odzwierciedlać . Na przykład „TextExceeded” lub „AttrValueExceeded”. Zobacz informacje o korzystaniu z .
  • Domyślnym stanem jest HTTP 500. ale stan HTTP można zmienić na 400 przez błędy w przepływie żądania przez ustawienie usługi na poziomie organizacji. Zobacz informacje o korzystaniu z .

Błędy wdrażania

Brak.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name Matches "SourceUnavailable"
xmlattack.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. xmlattack.XPT-SecureRequest.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasady dotyczące konwersji XML na JSON

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.xmltojson.ExecutionFailed 500 Ten błąd występuje, gdy ładunek wejściowy (XML) jest pusty, wejściowy plik XML jest nieprawidłowy lub błędnie sformatowany.
steps.xmltojson.InCompatibleType 500 Ten błąd występuje, jeśli typ zmiennej zdefiniowanej w elemencie <Source> i parametrze Elementy <OutputVariable> nie są takie same. Musisz koniecznie dodać typ zmiennych zawartego w elemencie <Source> i elementu <OutputVariable>.
steps.xmltojson.InvalidSourceType 500 Ten błąd występuje, jeśli typ zmiennej używanej do zdefiniowania elementu <Source> to nieprawidłowa.Prawidłowe typy zmiennych to komunikat i ciąg znaków.
steps.xmltojson.OutputVariableIsNotAvailable 500 Ten błąd występuje, jeśli zmienna określona w elemencie <Source> kodu XML Zasada JSON jest typu „ciąg znaków”, a element <OutputVariable> nie został zdefiniowany. Element <OutputVariable> jest wymagany, gdy zmienna zdefiniowana w parametrze <Source> element jest typu „ciąg znaków”.
steps.xmltojson.SourceUnavailable 500 Ten błąd występuje, jeśli komunikat określona w elemencie <Source> zasady XML na JSON to:
    .
  • poza zakresem (niedostępne w ramach konkretnego procesu, w którym są realizowane zasady) lub
  • nie można rozwiązać (nie jest zdefiniowany)

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.

Nazwa błędu Przyczyna Napraw
EitherOptionOrFormat Jeśli jeden z elementów <Options> lub <Format> nie jest wartością zadeklarowane w zasadzie XML na JSON, nie uda się wdrożyć serwera proxy interfejsu API.
UnknownFormat Jeśli element <Format> w zasadzie XML na JSON zawiera nieznaną wartość formatu, wdrożenie serwera proxy interfejsu API się nie uda. Wstępnie zdefiniowane formaty obejmują: xml.com, yahoo, google i badgerFish.

Zmienne błędów

Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name = "SourceUnavailable"
xmltojson.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. xmltojson.XMLtoJSON-1.failed = true

Przykładowa odpowiedź na błąd

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

Przykładowa reguła błędu

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

Zasady dotyczące XSLTransform

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.xsl.XSLSourceMessageNotAvailable 500 Ten błąd występuje, jeśli zmienna komunikatu lub ciągu znaków określona w elemencie <Source> zasady przekształcania XSL jest poza zakresem (niedostępna w konkretnym procesie, w którym jest wykonywana) albo nie można jej rozwiązać (nie jest zdefiniowana).
steps.xsl.XSLEvaluationFailed 500 Ten błąd występuje, jeśli wejściowe ładunki XML są niedostępne lub nieprawidłowo sformułowane albo zasada XSLTransform nie lub nie może przekształcić wejściowego pliku XML na podstawie reguł przekształcania podanych w pliku XSL. Przyczyn niepowodzenia zasady XSLTransform może być wiele. Więcej informacji na temat przyczyny niepowodzenia będzie można znaleźć w komunikacie o błędzie.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
XSLEmptyResourceUrl Jeśli element <ResourceURL> w zasadzie przekształcania XSL jest pusty, wdrożenie serwera proxy interfejsu API nie powiedzie się.
XSLInvalidResourceType Jeśli typ zasobu określony w elemencie <ResourceURL> zasady przekształcania XSL nie jest typu xsl, wdrożenie serwera proxy interfejsu API nie powiedzie się.