مرجع خطای خط مشی

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

خط مشی AccessControl

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
accesscontrol.IPDeniedAccess 403 The client IP address, or an IP address passed in the API request, matches an IP address specified in the <SourceAddress> element within the <MatchRule> element of the Access Control Policy, and the action attribute of the <MatchRule> element is set to DENY.

Fault variables

These variables are set when a runtime error occurs. For more information, see Variables specific to 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 "IPDeniedAccess"
acl.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. acl.AC-AllowAccess.failed = true

Example fault response

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

Example fault rule

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

خط مشی AccessEntity

برای اطلاعات مرتبط، به آنچه باید در مورد خطاهای خط مشی و خطاهای مدیریتی بدانید مراجعه کنید.

خطاهای زمان اجرا

هیچ یک.

خطاهای استقرار

نام خطا رشته خطا وضعیت HTTP زمانی رخ می دهد
InvalidEntityType Invalid type [entity_type] in ACCESSENTITYStepDefinition [policy_name] N/A نوع موجودیت مورد استفاده باید یکی از انواع پشتیبانی شده باشد.

خط مشی AssignMessage

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.assignmessage.SetVariableFailed 500 خط مشی قادر به تنظیم متغیر نبود. رشته خطا را برای نام متغیر حل نشده ببینید.
steps.assignmessage.VariableOfNonMsgType 500

اگر مشخصه source در عنصر <Copy> روی متغیری تنظیم شود که از نوع پیام نیست، این خطا رخ می دهد.

متغیرهای نوع پیام، کل درخواست‌ها و پاسخ‌های HTTP را نشان می‌دهند. متغیرهای جریان لبه داخلی request ، response و message از نوع پیام هستند. برای کسب اطلاعات بیشتر در مورد متغیرهای پیام، به مرجع متغیرها مراجعه کنید.

steps.assignmessage.UnresolvedVariable 500

این خطا در صورتی رخ می دهد که متغیر مشخص شده در خط مشی Assign Message یکی از این موارد باشد:

  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست)
  • یا
  • قابل حل نیست (تعریف نشده است)

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
InvalidIndex اگر شاخص مشخص شده در عناصر <Copy> و/یا <Remove> خط مشی Assign Message 0 یا یک عدد منفی باشد، در آن صورت استقرار API Proxy ناموفق است.
InvalidVariableName اگر عنصر فرزند <Name> خالی باشد یا در عنصر <AssignVariable> مشخص نشده باشد، استقرار پراکسی API با شکست مواجه می شود زیرا نام متغیر معتبری وجود ندارد که بتوان مقداری به آن اختصاص داد. یک نام متغیر معتبر مورد نیاز است.
InvalidPayload محموله مشخص شده در خط مشی نامعتبر است.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "UnresolvedVariable"
assignmessage. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. assignmessage.AM-SetResponse.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی احراز هویت اولیه

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.basicauthentication.InvalidBasicAuthenticationSource 500 در رمزگشایی که رشته رمزگذاری شده Base64 ورودی حاوی مقدار معتبری نیست یا سربرگ بد شکل است (مثلاً با "Basic" شروع نمی شود).
steps.basicauthentication.UnresolvedVariable 500 متغیرهای منبع مورد نیاز برای رمزگشایی یا رمزگذاری وجود ندارد. این خطا تنها زمانی رخ می دهد که IgnoreUnresolvedVariables نادرست باشد.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا زمانی رخ می دهد رفع کنید
UserNameRequired عنصر <User> باید برای عملیات نامگذاری شده وجود داشته باشد.
PasswordRequired عنصر <Password> باید برای عملیات نامگذاری شده وجود داشته باشد.
AssignToRequired عنصر <AssignTo> باید برای عملیات نامگذاری شده وجود داشته باشد.
SourceRequired عنصر <Source> باید برای عملیات نامگذاری شده وجود داشته باشد.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "UnresolvedVariable"
BasicAuthentication. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. BasicAuthentication.BA-Authenticate.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی ConcurrentRateLimit

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP زمانی رخ می دهد
policies.concurrentratelimit.ConcurrentRatelimtViolation 503

اتصال ConcurrentRatelim بیش از حد مجاز است. محدودیت اتصال: {0}

توجه: کد خطا نشان داده شده در سمت چپ صحیح است، اگرچه حاوی یک غلط املایی ("limt") است. هنگام ایجاد قوانین خطا برای به دام انداختن این خطا، حتماً از کد دقیقاً همانطور که در اینجا نشان داده شده است استفاده کنید.

خطاهای استقرار

نام خطا زمانی رخ می دهد
InvalidCountValue مقدار شمارش نامعتبر ConcurrentRatelim مشخص شده است.
ConcurrentRatelimitStepAttachment\
NotAllowedAtProxyEndpoint
ضمیمه خط‌مشی Ratelimit همزمان {0} در مسیرهای درخواست/پاسخ/عیب پروکسی مجاز نیست. این سیاست باید در نقطه پایانی هدف قرار گیرد.
ConcurrentRatelimitStepAttachment\
MissingAtTargetEndpoint
در مسیرهای درخواست/پاسخ/عیب مورد نظر، پیوست خط مشی محدودیت نرخی همزمان {0} وجود ندارد. این خط مشی باید در Target Request Preflow، Target Response Postflow و DefaultFaultRule قرار گیرد.
InvalidTTLForMessageTimeOut مقدار ttl نامعتبر ConcurrentRatelimit برای زمان پایان پیام مشخص شده است. باید یک عدد صحیح مثبت باشد.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "ConcurrentRatelimtViolation"

توجه: کد خطا نشان داده شده در مثال صحیح است، اگرچه حاوی یک غلط املایی ("limt") است. لطفاً هنگام ایجاد قوانین خطا برای به دام انداختن این خطا حتماً از کد دقیقاً همانطور که در اینجا نشان داده شده است استفاده کنید.

concurrentratelimit. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. concurrentratelimit.CRL-RateLimitPolicy.failed = true

نمونه پاسخ خطا

در صورت تجاوز از حد مجاز، این خط مشی فقط وضعیت HTTP 503 را به مشتری برمی گرداند.

مثال قانون خطا

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

خط مشی DecodeJWS

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP زمانی رخ می دهد
steps.jws.FailedToDecode 401 این خط مشی قادر به رمزگشایی JWS نبود. JWS احتمالاً خراب است.
steps.jws.FailedToResolveVariable 401 زمانی رخ می دهد که متغیر جریان مشخص شده در عنصر <Source> خط مشی وجود نداشته باشد.
steps.jws.InvalidClaim 401 برای ادعای مفقود یا عدم تطابق ادعا، یا عدم تطابق سرصفحه یا سرصفحه.
steps.jws.InvalidJsonFormat 401 JSON نامعتبر در هدر JWS یافت شد.
steps.jws.InvalidJws 401 این خطا زمانی رخ می دهد که تأیید امضای JWS ناموفق باشد.
steps.jws.InvalidPayload 401 محموله JWS نامعتبر است.
steps.jws.InvalidSignature 401 <DetachedContent> حذف شده است و JWS دارای یک بار محتوای جدا شده است.
steps.jws.MissingPayload 401 محموله JWS وجود ندارد.
steps.jws.NoAlgorithmFoundInHeader 401 زمانی رخ می دهد که JWS سربرگ الگوریتم را حذف کند.
steps.jws.UnknownException 401 یک استثنا ناشناخته رخ داد.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا زمانی رخ می دهد
InvalidAlgorithm تنها مقادیر معتبر عبارتند از: RS256، RS384، RS512، PS256، PS384، PS512، ES256، ES384، ES512، HS256، HS384، HS512.

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

سایر خطاهای احتمالی استقرار

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "TokenExpired"
JWS.failed همه خط مشی های JWS در صورت خرابی یک متغیر را تنظیم می کنند. jws.JWS-Policy.failed = true

نمونه پاسخ خطا

برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.

مثال قانون خطا

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

خط مشی DecodeJWT

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت ثابت
steps.jwt.FailedToDecode 401 زمانی رخ می دهد که خط مشی قادر به رمزگشایی JWT نباشد. JWT ممکن است بد شکل، نامعتبر یا غیر قابل رمزگشایی باشد.
steps.jwt.FailedToResolveVariable 401 زمانی رخ می دهد که متغیر جریان مشخص شده در عنصر <Source> خط مشی وجود نداشته باشد.
steps.jwt.InvalidToken 401 زمانی رخ می دهد که متغیر جریان مشخص شده در عنصر <Source> خط مشی خارج از محدوده باشد یا قابل حل نباشد.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت ثابت
InvalidEmptyElement زمانی رخ می دهد که متغیر جریان حاوی JWT که باید رمزگشایی شود در عنصر <Source> خط مشی مشخص نشده باشد.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "TokenExpired"
JWT.failed همه خط مشی های JWT متغیرهای یکسانی را در صورت خرابی تنظیم می کنند. JWT.failed = true

نمونه پاسخ خطا

کدهای خطای خط مشی JWT

برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.

مثال قانون خطا

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

سیاست ExtractVariables

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.extractvariables.ExecutionFailed 500

این خطا زمانی رخ می دهد که:

  • محموله ورودی (JSON، XML) خالی است.
  • ورودی (JSON، XML، و غیره) که به خط‌مشی ارسال می‌شود، نامعتبر یا نادرست است.
steps.extractvariables.ImmutableVariable 500 متغیر مورد استفاده در خط مشی تغییرناپذیر است. خط مشی قادر به تنظیم این متغیر نبود.
steps.extractvariables.InvalidJSONPath 500 اگر از یک مسیر JSON نامعتبر در عنصر JSONPath خط مشی استفاده شود، این خطا رخ می دهد. به عنوان مثال، اگر یک بار JSON دارای Name شیء نباشد، اما Name به عنوان مسیر در خط مشی مشخص کنید، این خطا رخ می دهد.
steps.extractvariables.JsonPathParsingFailure 500 این خطا زمانی رخ می دهد که خط مشی قادر به تجزیه یک مسیر JSON و استخراج داده ها از متغیر جریان مشخص شده در عنصر Source نباشد. به طور معمول این اتفاق می افتد اگر متغیر جریان مشخص شده در عنصر Source در جریان فعلی وجود نداشته باشد.
steps.extractvariables.SetVariableFailed 500 اگر خط مشی نتواند مقدار یک متغیر را تنظیم کند، این خطا رخ می دهد. این خطا معمولاً در صورتی اتفاق می‌افتد که بخواهید مقادیری را به چندین متغیر اختصاص دهید که نام آنها با کلمات مشابه در قالب جدا شده از نقطه تو در تو آغاز می‌شود.
steps.extractvariables.SourceMessageNotAvailable 500 این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر Source سیاست یکی از این موارد باشد:
  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
  • قابل حل نیست (تعریف نشده است)
steps.extractvariables.UnableToCast 500 این خطا در صورتی رخ می دهد که خط مشی قادر به ارسال مقدار استخراج شده به یک متغیر نباشد. معمولاً اگر بخواهید مقدار یک نوع داده را روی متغیری از نوع داده دیگر تنظیم کنید، این اتفاق می افتد.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
NothingToExtract اگر خط مشی هیچ یک از عناصر URIPath ، QueryParam ، Header ، FormParam ، XMLPayload ، یا JSONPayload را نداشته باشد، استقرار پروکسی API ناموفق است، زیرا چیزی برای استخراج وجود ندارد.
NONEmptyPrefixMappedToEmptyURI این خطا در صورتی رخ می دهد که خط مشی دارای پیشوندی باشد که در عنصر Namespace زیر عنصر XMLPayload تعریف شده است، اما URI تعریف نشده باشد.
DuplicatePrefix این خطا در صورتی رخ می دهد که خط مشی دارای پیشوند یکسانی باشد که بیش از یک بار در عنصر Namespace زیر عنصر XMLPayload تعریف شده است.
NoXPathsToEvaluate اگر این خط‌مشی عنصر XPath را در عنصر XMLPayload نداشته باشد، استقرار پراکسی API با این خطا با شکست مواجه می‌شود.
EmptyXPathExpression اگر خط مشی دارای عبارت XPath خالی در عنصر XMLPayload باشد، استقرار پروکسی API با شکست مواجه می شود.
NoJSONPathsToEvaluate اگر این خط‌مشی عنصر JSONPath در عنصر JSONPayload نداشته باشد، استقرار پراکسی API با این خطا با شکست مواجه می‌شود.
EmptyJSONPathExpression اگر خط مشی دارای عبارت XPath خالی در عنصر XMLPayload باشد، استقرار پروکسی API با شکست مواجه می شود.
MissingName اگر خط مشی دارای ویژگی name در هیچ یک از عناصر خط مشی مانند QueryParam ، Header ، FormParam یا Variable نباشد، در آن صورت استقرار پروکسی API با شکست مواجه می شود.
PatternWithoutVariable اگر این خط مشی دارای متغیر مشخص شده در عنصر Pattern نباشد، استقرار پروکسی API با شکست مواجه می شود. عنصر Pattern به نام متغیری نیاز دارد که داده های استخراج شده در آن ذخیره می شود.
CannotBeConvertedToNodeset اگر خط مشی دارای عبارت XPath باشد که در آن نوع Variable به عنوان nodeset تعریف شده است، اما عبارت را نمی توان به nodeset تبدیل کرد، در این صورت استقرار پراکسی API با شکست مواجه می شود.
JSONPathCompilationFailed خط مشی نمی تواند مسیر JSON مشخصی را کامپایل کند.
InstantiationFailed این خط مشی قابل اجرا نبود.
XPathCompilationFailed اگر پیشوند یا مقدار مورد استفاده در عنصر XPath بخشی از هیچ یک از فضاهای نام اعلام شده در خط مشی نباشد، در این صورت استقرار پراکسی API با شکست مواجه می شود.
InvalidPattern اگر تعریف عنصر Pattern در هر یک از عناصر مانند URIPath ، QueryParam ، Header ، FormParam ، XMLPayload یا JSONPayload در خط‌مشی نامعتبر باشد، در این صورت استقرار پراکسی API با شکست مواجه می‌شود.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name = "SourceMessageNotAvailable"
extractvariables. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. extractvariables.EV-ParseJsonResponse.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی GenerateJWS

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP زمانی رخ می دهد
steps.jws.GenerationFailed 401 این خط مشی قادر به ایجاد JWS نبود.
steps.jws.InsufficientKeyLength 401 برای یک کلید کمتر از 32 بایت برای الگوریتم HS256
steps.jws.InvalidClaim 401 برای ادعای مفقود یا عدم تطابق ادعا، یا عدم تطابق سرصفحه یا سرصفحه.
steps.jws.InvalidCurve 401 منحنی مشخص شده توسط کلید برای الگوریتم منحنی بیضی معتبر نیست.
steps.jws.InvalidJsonFormat 401 JSON نامعتبر در هدر JWS یافت شد.
steps.jws.InvalidPayload 401 محموله JWS نامعتبر است.
steps.jws.InvalidSignature 401 <DetachedContent> حذف شده است و JWS دارای یک بار محتوای جدا شده است.
steps.jws.KeyIdMissing 401 خط‌مشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده می‌کند، اما JWS امضاشده دارای ویژگی kid در سرصفحه نیست.
steps.jws.KeyParsingFailed 401 کلید عمومی از اطلاعات کلید داده شده قابل تجزیه نیست.
steps.jws.MissingPayload 401 محموله JWS وجود ندارد.
steps.jws.NoAlgorithmFoundInHeader 401 زمانی رخ می دهد که JWS سربرگ الگوریتم را حذف کند.
steps.jws.SigningFailed 401 در GenerateJWS، برای کلیدی کمتر از حداقل اندازه الگوریتم‌های HS384 یا HS512
steps.jws.UnknownException 401 یک استثنا ناشناخته رخ داد.
steps.jws.WrongKeyType 401 نوع کلید اشتباه مشخص شده است. به عنوان مثال، اگر یک کلید RSA برای یک الگوریتم منحنی بیضی یا یک کلید منحنی برای یک الگوریتم RSA مشخص کنید.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا زمانی رخ می دهد
InvalidAlgorithm تنها مقادیر معتبر عبارتند از: RS256، RS384، RS512، PS256، PS384، PS512، ES256، ES384، ES512، HS256، HS384، HS512.

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

سایر خطاهای احتمالی استقرار

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "TokenExpired"
JWS.failed همه خط مشی های JWS در صورت خرابی یک متغیر را تنظیم می کنند. jws.JWS-Policy.failed = true

نمونه پاسخ خطا

برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.

مثال قانون خطا

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

ایجاد خط مشی JWT

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP زمانی رخ می دهد
steps.jwt.AlgorithmInTokenNotPresentInConfiguration 401 زمانی رخ می دهد که خط مشی تأیید چندین الگوریتم داشته باشد.
steps.jwt.AlgorithmMismatch 401 الگوریتم مشخص‌شده در خط‌مشی Generate با الگوریتم مورد انتظار در خط‌مشی تأیید مطابقت نداشت. الگوریتم های مشخص شده باید مطابقت داشته باشند.
steps.jwt.FailedToDecode 401 این خط مشی قادر به رمزگشایی JWT نبود. JWT احتمالاً خراب است.
steps.jwt.GenerationFailed 401 این سیاست قادر به ایجاد JWT نبود.
steps.jwt.InsufficientKeyLength 401 برای یک کلید کمتر از 32 بایت برای الگوریتم HS256، کمتر از 48 بایت برای الگوریتم HS386، و کمتر از 64 بایت برای الگوریتم HS512.
steps.jwt.InvalidClaim 401 برای ادعای مفقود یا عدم تطابق ادعا، یا عدم تطابق سرصفحه یا سرصفحه.
steps.jwt.InvalidCurve 401 منحنی مشخص شده توسط کلید برای الگوریتم منحنی بیضی معتبر نیست.
steps.jwt.InvalidJsonFormat 401 JSON نامعتبر در سرصفحه یا محموله یافت شد.
steps.jwt.InvalidToken 401 این خطا زمانی رخ می دهد که تأیید امضای JWT ناموفق باشد.
steps.jwt.JwtAudienceMismatch 401 ادعای مخاطب در راستی‌آزمایی رمز شکست خورد.
steps.jwt.JwtIssuerMismatch 401 ادعای صادرکننده در تأیید توکن ناموفق بود.
steps.jwt.JwtSubjectMismatch 401 ادعای موضوع در تأیید رمز شکست خورد.
steps.jwt.KeyIdMissing 401 خط‌مشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده می‌کند، اما JWT امضاشده دارای ویژگی kid در سرصفحه نیست.
steps.jwt.KeyParsingFailed 401 کلید عمومی از اطلاعات کلید داده شده قابل تجزیه نیست.
steps.jwt.NoAlgorithmFoundInHeader 401 زمانی اتفاق می‌افتد که JWT فاقد سربرگ الگوریتم باشد.
steps.jwt.NoMatchingPublicKey 401 خط‌مشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده می‌کند، اما kid در JWT امضا شده در JWKS فهرست نشده است.
steps.jwt.SigningFailed 401 در GenerateJWT، برای کلیدی کمتر از حداقل اندازه الگوریتم‌های HS384 یا HS512
steps.jwt.TokenExpired 401 این خط‌مشی تلاش می‌کند یک توکن منقضی شده را تأیید کند.
steps.jwt.TokenNotYetValid 401 رمز هنوز معتبر نیست.
steps.jwt.UnhandledCriticalHeader 401 سرصفحه ای که توسط خط مشی Verify JWT در سرصفحه crit یافت شده است در KnownHeaders فهرست نشده است.
steps.jwt.UnknownException 401 یک استثنا ناشناخته رخ داد.
steps.jwt.WrongKeyType 401 نوع کلید اشتباه مشخص شده است. به عنوان مثال، اگر یک کلید RSA برای یک الگوریتم منحنی بیضی یا یک کلید منحنی برای یک الگوریتم RSA مشخص کنید.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت ثابت
InvalidNameForAdditionalClaim اگر ادعای مورد استفاده در عنصر فرزند <Claim> عنصر <AdditionalClaims> یکی از نام‌های ثبت‌شده زیر باشد، استقرار ناموفق خواهد بود: kid ، iss ، sub ، aud ، iat ، exp ، nbf ، یا jti .
InvalidTypeForAdditionalClaim اگر ادعای استفاده شده در عنصر فرزند <Claim> عنصر <AdditionalClaims> از نوع string ، number ، boolean یا map نباشد، استقرار با شکست مواجه خواهد شد.
MissingNameForAdditionalClaim اگر نام ادعا در عنصر فرزند <Claim> عنصر <AdditionalClaims> مشخص نشده باشد، استقرار با شکست مواجه خواهد شد.
InvalidNameForAdditionalHeader این خطا زمانی رخ می دهد که نام ادعای مورد استفاده در عنصر فرزند <Claim> عنصر <AdditionalClaims> alg یا typ باشد.
InvalidTypeForAdditionalHeader اگر نوع ادعای استفاده شده در عنصر فرزند <Claim> عنصر <AdditionalClaims> از نوع string ، number ، boolean یا map نباشد، استقرار با شکست مواجه خواهد شد.
InvalidValueOfArrayAttribute این خطا زمانی رخ می دهد که مقدار ویژگی آرایه در عنصر فرزند <Claim> عنصر <AdditionalClaims> روی true یا false تنظیم نشده باشد.
InvalidConfigurationForActionAndAlgorithm اگر عنصر <PrivateKey> با الگوریتم های خانواده HS یا عنصر <SecretKey> با الگوریتم های خانواده RSA استفاده شود، استقرار با شکست مواجه می شود.
InvalidValueForElement اگر مقدار مشخص شده در عنصر <Algorithm> یک مقدار پشتیبانی نشده باشد، استقرار با شکست مواجه خواهد شد.
MissingConfigurationElement اگر عنصر <PrivateKey> با الگوریتم های خانواده RSA استفاده نشود یا عنصر <SecretKey> با الگوریتم های خانواده HS استفاده نشود، این خطا رخ می دهد.
InvalidKeyConfiguration اگر عنصر فرزند <Value> در عناصر <PrivateKey> یا <SecretKey> تعریف نشده باشد، استقرار با شکست مواجه خواهد شد.
EmptyElementForKeyConfiguration اگر ویژگی ref عنصر فرزند <Value> از عناصر <PrivateKey> یا <SecretKey> خالی یا نامشخص باشد، استقرار با شکست مواجه خواهد شد.
InvalidVariableNameForSecret این خطا در صورتی رخ می دهد که نام متغیر جریان مشخص شده در ویژگی ref عنصر فرزند <Value> از عناصر <PrivateKey> یا <SecretKey> دارای پیشوند خصوصی (private.) نباشد.
InvalidSecretInConfig اگر عنصر فرزند <Value> عناصر <PrivateKey> یا <SecretKey> دارای پیشوند خصوصی (private.) نباشد، این خطا رخ می دهد.
InvalidTimeFormat اگر مقدار مشخص شده در عنصر <NotBefore> از قالب پشتیبانی شده استفاده نکند، استقرار با شکست مواجه خواهد شد.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "TokenExpired"
JWT.failed همه خط مشی های JWT متغیرهای یکسانی را در صورت خرابی تنظیم می کنند. JWT.failed = true

نمونه پاسخ خطا

کدهای خطای خط مشی JWT

برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.

مثال قانون خطا

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

خط مشی JavaCallout

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.javacallout.ExecutionError 500 زمانی اتفاق می‌افتد که کد جاوا در طول اجرای یک خط‌مشی JavaCallout یک استثنا ایجاد می‌کند یا null را برمی‌گرداند.

خطاهای استقرار

این خطاها می توانند زمانی رخ دهند که پروکسی حاوی خط مشی مستقر است.

نام خطا رشته خطا وضعیت HTTP زمانی رخ می دهد
ResourceDoesNotExistResource with name [name] and type [type] does not exist N/A فایل مشخص شده در عنصر <ResourceURL> وجود ندارد.
JavaCalloutInstantiationFailed Failed to instantiate the JavaCallout Class [classname] N/A فایل کلاس مشخص شده در عنصر <ClassName> در jar نیست.
IncompatibleJavaVersion Failed to load java class [classname] definition due to - [reason] N/A رشته خطا را ببینید. همچنین به نرم افزارهای پشتیبانی شده و نسخه های پشتیبانی شده مراجعه کنید.
JavaClassNotFoundInJavaResource Failed to find the ClassName in java resource [jar_name] - [class_name] N/A رشته خطا را ببینید.
JavaClassDefinitionNotFound Failed to load java class [class_name] definition due to - [reason] N/A رشته خطا را ببینید.
NoAppropriateConstructor No appropriate constructor found in JavaCallout class [class_name] N/A رشته خطا را ببینید.
NoResourceForURL Could not locate a resource with URL [string] N/A رشته خطا را ببینید.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "ExecutionError"
javacallout. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. javacallout.JC-GetUserData.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی جاوا اسکریپت

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.javascript.ScriptExecutionFailed 500 خط مشی جاوا اسکریپت می تواند انواع مختلفی از خطاهای ScriptExecutionFailed را ایجاد کند. انواع خطاهای رایج عبارتند از RangeError ، ReferenceError ، SyntaxError ، TypeError و URIError .
steps.javascript.ScriptExecutionFailedLineNumber 500 خطایی در کد جاوا اسکریپت رخ داد. برای جزئیات بیشتر به رشته خطا مراجعه کنید. N/A
steps.javascript.ScriptSecurityError 500 هنگام اجرای جاوا اسکریپت یک خطای امنیتی روی داد. برای جزئیات بیشتر به رشته خطا مراجعه کنید. N/A

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
InvalidResourceUrlFormat اگر قالب URL منبع مشخص شده در <ResourceURL> یا عنصر <IncludeURL> خط مشی جاوا اسکریپت نامعتبر باشد، در این صورت استقرار پروکسی API با شکست مواجه می شود.
InvalidResourceUrlReference اگر عناصر <ResourceURL> یا <IncludeURL> به یک فایل جاوا اسکریپت اشاره می کنند که وجود ندارد، در این صورت استقرار پروکسی API با شکست مواجه می شود. فایل منبع ارجاع شده باید در سطح پروکسی API، محیط یا سطح سازمان باشد.
WrongResourceType اگر عناصر <ResourceURL> یا <IncludeURL> خط مشی جاوا اسکریپت به هر نوع منبعی غیر از jsc (فایل جاوا اسکریپت) اشاره داشته باشند، این خطا در حین استقرار رخ می دهد.
NoResourceURLOrSource اگر عنصر <ResourceURL> اعلان نشده باشد یا URL منبع در این عنصر تعریف نشده باشد، استقرار خط مشی جاوا اسکریپت می تواند با این خطا شکست بخورد. عنصر <ResourceURL> یک عنصر اجباری است. یا، عنصر <IncludeURL> اعلام شده است اما URL منبع در این عنصر تعریف نشده است. عنصر <IncludeURL> اختیاری است، اما اگر اعلام شود، URL منبع باید در عنصر <IncludeURL> مشخص شود.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "ScriptExecutionFailed"
javascript. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. javascript.JavaScript-1.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی JSONThreatProtection

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.jsonthreatprotection.ExecutionFailed 500 خط مشی JSONThreatProtection می تواند انواع مختلفی از خطاهای ExecutionFailed را ایجاد کند. بیشتر این خطاها زمانی رخ می‌دهند که از یک آستانه مشخص در خط‌مشی تجاوز کند. این نوع خطاها عبارتند از: طول نام ورودی شیء ، تعداد ورودی شیء ، تعداد عناصر آرایه ، عمق ظرف ، طول مقدار رشته رشته . این خطا همچنین زمانی رخ می‌دهد که payload دارای یک شی JSON نامعتبر باشد.
steps.jsonthreatprotection.SourceUnavailable 500 این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> یکی از این موارد باشد:
  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست)
  • یکی از مقادیر معتبر request ، response یا message نیست
steps.jsonthreatprotection.NonMessageVariable 500 این خطا در صورتی رخ می دهد که عنصر <Source> روی متغیری تنظیم شود که از نوع پیام نیست.

خطاهای استقرار

هیچ کدام

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "SourceUnavailable"
jsonattack. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. jsonattack.JTP-SecureRequest.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

انواع خط مشی JSONThreatProtection کدهای خطای زیر را تعریف می کند:

خط مشی JSONtoXML

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.jsontoxml.ExecutionFailed 500 بار ورودی (JSON) خالی است یا ورودی (JSON) که به خط مشی JSON به XML ارسال شده است نامعتبر یا نادرست است.
steps.jsontoxml.InCompatibleTypes 500 این خطا در صورتی رخ می دهد که نوع متغیر تعریف شده در عنصر <Source> و عنصر <OutputVariable> یکسان نباشد. اجباری است که نوع متغیرهای موجود در عنصر <Source> و عنصر <OutputVariable> مطابقت داشته باشد. انواع معتبر message و string هستند.
steps.jsontoxml.InvalidSourceType 500 این خطا در صورتی رخ می دهد که نوع متغیر مورد استفاده برای تعریف عنصر <Source> نامعتبر باشد. انواع معتبر متغیر message و string هستند.
steps.jsontoxml.OutputVariableIsNotAvailable 500 اگر متغیر مشخص شده در عنصر <Source> سیاست JSON به XML از نوع string باشد و عنصر <OutputVariable> تعریف نشده باشد، این خطا رخ می دهد. عنصر <OutputVariable> زمانی اجباری است که متغیر تعریف شده در عنصر <Source> از نوع رشته باشد.
steps.jsontoxml.SourceUnavailable 500 این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> خط مشی JSON به XML یکی از این موارد باشد:
  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
  • قابل حل نیست (تعریف نشده است)

خطاهای استقرار

هیچ کدام

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "SourceUnavailable"
jsontoxml. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. jsontoxml.JSON-to-XML-1.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی KeyValueMapOperations

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت ثابت
steps.keyvaluemapoperations.SetVariableFailed 500

اگر بخواهید مقداری را از نقشه مقدار کلید رمزگذاری شده بازیابی کنید و مقدار آن را روی متغیری تنظیم کنید که نام آن پیشوند private ندارد، این خطا رخ می دهد. پیشوندی که برای اهداف امنیتی اولیه در حین اشکال‌زدایی لازم است، مقادیر رمزگذاری‌شده را از ردیابی پراکسی API و جلسات اشکال‌زدایی پنهان می‌کند.

steps.keyvaluemapoperations.UnsupportedOperationException 500

اگر مشخصه mapIdentifier روی رشته خالی در خط مشی عملیات Map Value Key تنظیم شده باشد، این خطا رخ می دهد.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت ثابت
InvalidIndex اگر ویژگی index مشخص شده در عنصر <Get> خط مشی عملیات نقشه ارزش کلیدی صفر یا یک عدد منفی باشد، در این صورت استقرار پراکسی API با شکست مواجه می شود. شاخص از 1 شروع می شود، بنابراین یک شاخص صفر یا منفی به عنوان نامعتبر در نظر گرفته می شود.
KeyIsMissing این خطا در صورتی رخ می دهد که عنصر <Key> به طور کامل گم شده باشد یا عنصر <Parameter> در عنصر <Key> در زیر <Entry> عنصر <InitialEntries> خط مشی Key Value Map Operations وجود نداشته باشد.
ValueIsMissing این خطا در صورتی رخ می دهد که عنصر <Value> در زیر عنصر <Entry> عنصر <InitialEntries> خط مشی Key Value Map Operations وجود نداشته باشد.

خط مشی LDAP

این خط مشی از کدهای خطای زیر استفاده می کند:

کد خطا پیام
InvalidAttributeName Invalid attribute name {0}.
InvalidSearchBase Search base can not be empty.
InvalidValueForPassword Invalid value for password field. It can not be empty.
InvalidSearchScope Invalid scope {0}. Allowed scopes are {1}.
InvalidUserCredentials Invalid user credentials.
InvalidExternalLdapReference Invalid external ldap reference {0}.
LdapResourceNotFound Ldap resource {0} not found.
BaseDNRequired Base DN required.
OnlyReferenceOrValueIsAllowed Only value or reference is allowed for {0}.
AttributesRequired At least one attribute required for search action.
UserNameIsNull User name is null.
SearchQueryAndUserNameCannotBePresent Both search query and username can not be present in the authentication action. Please specify either one of them.

خط مشی MessageLogging

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت
steps.messagelogging.StepDefinitionExecutionFailed 500 رشته خطا را ببینید.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
InvalidProtocol اگر پروتکل مشخص شده در عنصر <Protocol> معتبر نباشد، اجرای سیاست MessageLogging ممکن است با این خطا با شکست مواجه شود. پروتکل های معتبر TCP و UDP هستند. برای ارسال پیام های syslog از طریق TLS/SSL، فقط TCP پشتیبانی می شود.
InvalidPort اگر شماره پورت در عنصر <Port> مشخص نشده باشد یا اگر معتبر نباشد، استقرار سیاست MessageLogging ممکن است با این خطا با شکست مواجه شود. شماره پورت باید یک عدد صحیح بزرگتر از صفر باشد.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "StepDefinitionExecutionFailed"
messagelogging. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. messagelogging.ML-LogMessages.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی اعتبارسنجی OAS

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت
steps.oasvalidation.Failed 500 بدنه پیام درخواست را نمی توان در برابر مشخصات OpenAPI ارائه شده تأیید کرد.
steps.oasvalidation.SourceMessageNotAvailable 500

متغیر مشخص شده در عنصر <Source> خط مشی یا خارج از محدوده است یا قابل حل نیست.

steps.oasvalidation.NotMessageVariable 500

عنصر <Source> روی متغیری تنظیم شده است که از نوع پیام نیست.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت
ResourceDoesNotExist مشخصات OpenAPI ارجاع شده در عنصر <OASResource> وجود ندارد.
ResourceCompileFailed مشخصات OpenAPI که در استقرار گنجانده شده است حاوی خطاهایی است که از کامپایل شدن آن جلوگیری می کند. این به طور کلی نشان می دهد که مشخصات یک OpenAPI Specification 3.0 به خوبی شکل گرفته نیست.
BadResourceURL مشخصات OpenAPI ارجاع شده در عنصر <OASResource> قابل پردازش نیست. اگر فایل JSON یا YAML نباشد یا URL فایل به درستی مشخص نشده باشد، ممکن است این اتفاق بیفتد.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها جایی که مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "ResourceDoesNotExist"
oasvalidation. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. oasvalidation.myoaspolicy.failed = true

خط مشی PopulateCache

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP زمانی رخ می دهد
policies.populatecache.EntryCannotBeCached 500 ورودی را نمی توان کش کرد. شیء پیامی که در حافظه پنهان ذخیره می شود نمونه ای از کلاسی نیست که قابل سریال سازی باشد.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
InvalidCacheResourceReference اگر عنصر <CacheResource> در خط مشی PopulateCache روی نامی تنظیم شود که در محیطی که پراکسی API در آن مستقر می شود وجود نداشته باشد، این خطا رخ می دهد.
CacheNotFound حافظه پنهان مشخص شده در عنصر <CacheResource> وجود ندارد.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name = "EntryCannotBeCached"
populatecache. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. populatecache.POP-CACHE-1.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

سیاست LookupCache

این بخش پیام‌های خطا و متغیرهای جریانی را توضیح می‌دهد که وقتی این خط‌مشی خطا را راه‌اندازی می‌کند، تنظیم می‌شود. این اطلاعات مهم است که بدانید آیا در حال ایجاد قوانین خطا برای یک پروکسی هستید. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

پیشوند کد خطا

N/A

خطاهای زمان اجرا

این سیاست هیچ گونه خطای زمان اجرا ایجاد نمی کند.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت ثابت
InvalidCacheResourceReference اگر عنصر <CacheResource> روی نامی تنظیم شود که در محیطی که پراکسی API در آن مستقر می شود وجود نداشته باشد، این خطا رخ می دهد.
InvalidTimeout اگر عنصر <CacheLookupTimeoutInSeconds> روی یک عدد منفی تنظیم شود، آنگاه استقرار پراکسی API با شکست مواجه می شود.
CacheNotFound این خطا در صورتی رخ می دهد که حافظه پنهان ذکر شده در پیام خطا روی یک جزء خاص Message Processor ایجاد نشده باشد.

متغیرهای خطا

N/A

نمونه پاسخ خطا

N/A

خط مشی InvalidateCache

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

Error code prefix

N/A

Runtime errors

This policy does not throw any runtime errors.

Deployment errors

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

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

Fault variables

N/A

Example error response

N/A

سیاست ResponseCache

این بخش پیام‌های خطا و متغیرهای جریانی را توضیح می‌دهد که وقتی این خط‌مشی خطا را راه‌اندازی می‌کند، تنظیم می‌شود. این اطلاعات مهم است که بدانید آیا در حال ایجاد قوانین خطا برای یک پروکسی هستید. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

پیشوند کد خطا

N/A

خطاهای زمان اجرا

این سیاست هیچ گونه خطای زمان اجرا ایجاد نمی کند.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت ثابت
InvalidTimeout اگر عنصر <CacheLookupTimeoutInSeconds> خط مشی ResponseCache روی یک عدد منفی تنظیم شود، آنگاه استقرار پراکسی API با شکست مواجه می شود.
InvalidCacheResourceReference اگر عنصر <CacheResource> در یک خط‌مشی ResponseCache روی نامی تنظیم شود که در محیطی که پراکسی API در آن مستقر می‌شود، وجود نداشته باشد، این خطا رخ می‌دهد.
ResponseCacheStepAttachmentNotAllowedReq این خطا در صورتی رخ می دهد که همان سیاست ResponseCache به چندین مسیر درخواست در هر جریانی از یک پروکسی API متصل شود.
ResponseCacheStepAttachmentNotAllowedResp این خطا در صورتی رخ می دهد که همان سیاست ResponseCache به چندین مسیر پاسخ در هر جریانی از یک پروکسی API متصل شود.
InvalidMessagePatternForErrorCode اگر عنصر <SkipCacheLookup> یا <SkipCachePopulation> در یک خط مشی ResponseCache دارای یک شرط نامعتبر باشد، این خطا رخ می دهد.
CacheNotFound این خطا در صورتی رخ می دهد که حافظه پنهان ذکر شده در پیام خطا روی یک جزء خاص Message Processor ایجاد نشده باشد.

متغیرهای خطا

N/A

نمونه پاسخ خطا

N/A

خط مشی OAuthV2

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 Thrown by operations
steps.oauth.v2.access_token_expired 401 The access token is expired.

VerifyAccessToken
InvalidateToken

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

ValidateToken
InvalidateToken

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

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

Note: It is recommended that you change existing fault rule conditions to catch both the invalid_client and InvalidClientIdentifier names. See the 16.09.21 Release Notes for more information and an example.

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

The API proxy is not in the Product associated with the access token.

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

See also this Apigee Community post for more guidance on causes for this error.

VerifyAccessToken
steps.oauth.v2.InvalidClientIdentifier 500

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

Note: In this situation, this error used to be called invalid_client. It is recommended that you change existing fault rule conditions to catch both the invalid_client and InvalidClientIdentifier names. See the 16.09.21 Release Notes for more information and an example.

GenerateAccessToken
RefreshAccessToken

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

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

Note: There is currently a bug where unsupported grant type errors are not thrown correctly. If an unsupported grant type error occurs, the proxy does not enter the Error Flow, as expected.

GenerateAccessToken
GenerateAuthorizationCode
GenerateAccessTokenImplicitGrant
RefreshAccessToken

Deployment errors

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

Error name Cause
InvalidValueForExpiresIn

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

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

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

Note: If the <Operation> element is missing, the UI throws a schema validation error.

InvalidOperation

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

Note: If the <Operation> element is invalid, the UI throws a schema validation error.

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

Fault variables

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

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

Note: For the VerifyAccessToken operation, the fault name includes this suffix: keymanagement.service
For example: keymanagement.service.invalid_access_token

oauthV2.policy_name.fault.cause policy_name is the user-specified name of the policy that threw the fault. oauthV2.GenerateAccesstoken.cause = Required param : grant_type

Example error response

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

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

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

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

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

Example fault rule

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

خط مشی GetOAuthV2Info

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند. نام خطاهای نشان داده شده در زیر رشته هایی هستند که در صورت بروز خطا به متغیر fault.name اختصاص داده می شوند. برای جزئیات بیشتر به بخش متغیرهای خطا در زیر مراجعه کنید.

کد خطا وضعیت HTTP علت
steps.oauth.v2.access_token_expired 500 رمز دسترسی ارسال شده به خط مشی منقضی شده است.
steps.oauth.v2.authorization_code_expired 500 کد مجوز ارسال شده به خط مشی منقضی شده است.
steps.oauth.v2.invalid_access_token 500 رمز دسترسی ارسال شده به خط مشی نامعتبر است.
steps.oauth.v2.invalid_client-invalid_client_id 500 شناسه مشتری ارسال شده به خط مشی نامعتبر است.
steps.oauth.v2.invalid_refresh_token 500 نشانه تازه‌سازی ارسال شده به خط‌مشی نامعتبر است.
steps.oauth.v2.invalid_request-authorization_code_invalid 500 کد مجوز ارسال شده به خط مشی نامعتبر است.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 لطفاً این پست انجمن Apigee را برای اطلاعات در مورد عیب یابی این خطا ببینید.
steps.oauth.v2.refresh_token_expired 500 رمز به‌روزرسانی ارسال شده به خط‌مشی منقضی شده است.

خطاهای استقرار

برای اطلاعات در مورد خطاهای استقرار به پیام گزارش شده در UI مراجعه کنید.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "IPDeniedAccess"
oauthV2. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. oauthV2.GetTokenInfo.failed = true
oauthV2. policy_name .fault.name policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id
oauthV2. policy_name .fault.cause policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. oauthV2.GetTokenInfo.cause = ClientID is Invalid

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی SetOAuthV2Info

این بخش کدهای خطا و پیام‌های خطایی که بازگردانده می‌شوند و متغیرهای خطایی که توسط Edge هنگام ایجاد خطا توسط این خط‌مشی تنظیم می‌شوند را شرح می‌دهد. اگر در حال توسعه قوانین خطا برای مدیریت خطاها هستید، دانستن این اطلاعات مهم است. برای کسب اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط‌مشی و مدیریت خطاها بدانید، مراجعه کنید.

خطاهای زمان اجرا

این خطاها می‌توانند هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت
steps.oauth.v2.access_token_expired ۵۰۰ توکن دسترسی ارسال شده به پالیسی منقضی شده است.
steps.oauth.v2.invalid_access_token ۵۰۰ توکن دسترسی ارسال شده به خط‌مشی نامعتبر است.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound ۴۰۱ برای اطلاعات بیشتر در مورد عیب‌یابی این خطا، لطفاً به این پست انجمن Apigee مراجعه کنید.

خطاهای استقرار

برای اطلاعات مربوط به خطاهای استقرار، به پیام گزارش شده در رابط کاربری مراجعه کنید.

متغیرهای خطا

این متغیرها زمانی تنظیم می‌شوند که این خط‌مشی در زمان اجرا خطایی ایجاد کند.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای زمان اجرا در بالا ذکر شده است. نام خطا آخرین بخش کد خطا است. fault.name = "invalid_access_token"
oauthV2. policy_name .failed policy_name نام مشخص شده توسط کاربر برای سیاستی است که خطا را ایجاد کرده است. oauthV2.SetTokenInfo.failed = true
oauthV2. policy_name .fault.name policy_name نام مشخص شده توسط کاربر برای سیاستی است که خطا را ایجاد کرده است. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2. policy_name .fault.cause policy_name نام مشخص شده توسط کاربر برای سیاستی است که خطا را ایجاد کرده است. oauthV2.SetTokenInfo.cause = Invalid Access Token

پاسخ خطای نمونه

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

مثال قانون خطا

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

خط مشی DeleteOAuthV2Info

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت
steps.oauth.v2.invalid_access_token 401 رمز دسترسی ارسال شده به خط مشی نامعتبر است.
steps.oauth.v2.invalid_request-authorization_code_invalid 401 کد مجوز ارسال شده به خط مشی نامعتبر است.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 لطفاً این پست انجمن Apigee را برای اطلاعات در مورد عیب یابی این خطا ببینید.

خطاهای استقرار

برای اطلاعات در مورد خطاهای استقرار به پیام گزارش شده در UI مراجعه کنید.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name = "invalid_access_token"
oauthV2. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. oauthV2.DeleteTokenInfo.failed = true
oauthV2. policy_name .fault.name policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. oauthV2.DeleteTokenInfo.fault.name = invalid_access_token
oauthv2. policy_name .fault.cause policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. oauthV2.DeleteTokenInfo.cause = Invalid Access Token

نمونه پاسخ خطا

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

مثال قانون خطا

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

سیاست OAuthv1.0a

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}

خط مشی GetOAuthV1Info

No error codes are specified for the Get OAuth v1.0a Info policy.

خط مشی DeleteOAuthV1Info

On success, the policy returns a 200 status.

On failure, the policy returns 404 and output similar to the following (depending on whether you are deleting an access token, request token, or verifier.):

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

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

خط مشی PythonScript

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.script.ScriptEvaluationFailed 500 خط مشی PythonScript می تواند چندین نوع مختلف از خطاهای ScriptExecutionFailed را ایجاد کند. انواع خطاهای رایج شامل NameError و ZeroDivisionError هستند.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
InvalidResourceUrlFormat اگر قالب URL منبع مشخص شده در عنصر <ResourceURL> یا <IncludeURL> خط مشی PythonScript نامعتبر باشد، در این صورت استقرار پروکسی API با شکست مواجه می شود.
InvalidResourceUrlReference اگر عناصر <ResourceURL> یا <IncludeURL> به یک فایل PythonScript اشاره می کنند که وجود ندارد، در این صورت استقرار پروکسی API با شکست مواجه می شود. فایل منبع ارجاع شده باید در سطح پروکسی API، محیط یا سطح سازمان باشد.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "ScriptExecutionFailed"
pythonscript. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. pythonscript.PythonScript-1.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

سیاست سهمیه بندی

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>

سیاست ResetQuota

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت ثابت
policies.resetquota.InvalidRLPolicy 500 خط مشی Quota مشخص شده در عنصر <Quota> خط مشی Reset Quota در پراکسی API تعریف نشده است و بنابراین در طول جریان در دسترس نیست. عنصر <Quota> اجباری است و خط مشی سهمیه هدف را مشخص می کند که شمارنده آن باید از طریق خط مشی Reset Quota به روز شود.
policies.resetquota.FailedToResolveAllowCountRef N/A ارجاع به متغیر حاوی تعداد مجاز در عنصر <Allow> سیاست را نمی توان به مقدار تعیین کرد. این عنصر اجباری است و میزان کاهش سهمیه شمار را مشخص می کند.
policies.resetquota.FailedToResolveRLPolicy 500 متغیر ارجاع شده توسط ویژگی ref در عنصر <Quota> قابل حل نیست.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت ثابت
InvalidCount اگر مقدار شمارش مشخص شده در عنصر <Allow> سیاست Reset Quota یک عدد صحیح نباشد، استقرار پراکسی API با شکست مواجه می‌شود.

خط مشی RaiseFault

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت
steps.raisefault.RaiseFault 500 رشته خطا را ببینید.

خطاهای استقرار

هیچ کدام

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name = "RaiseFault"
raisefault. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. raisefault.RF-ThrowError.failed = true

نمونه پاسخ خطا

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

خط مشی RegularExpressionProtection

این بخش کدهای خطا و پیام‌های بازگردانده شده و متغیرهای خطای تنظیم شده توسط Edge را هنگامی که این خط‌مشی خطایی ایجاد می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. اگر می‌خواهید خطا را ثبت کنید و خطای سفارشی خود را مطرح کنید، ویژگی continueOnError="true" را روی عنصر ریشه سیاست تنظیم کنید. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهایی که از خط‌مشی‌های Edge برگردانده می‌شوند از یک قالب ثابت پیروی می‌کنند که در مرجع کد خطا توضیح داده شده است.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا پیام
اجرا ناموفق بود اجرای RegularExpressionProtection StepDefinition {0} انجام نشد. دلیل: {1}
Instantiation Failed نمونه سازی RegularExpressionProtection StepDefinition {0} ناموفق بود
NonMessageVariable متغیر {0} به پیام تبدیل نمی شود
SourceMessageNotAvailable پیام {0} برای RegularExpressionProtection StepDefinition در دسترس نیست {1}
تهدید شناسایی شده تهدید عبارت منظم در {0} شناسایی شد: regex: {1} ورودی: {2}
VariableResolution Failed حل کردن متغیر {0} ناموفق بود

خطاهای استقرار

کد خطا پیام ثابت
CannotBeConvertedToNodeset RegularExpressionProtection {0}: نتیجه xpath {1} را نمی توان به nodeset تبدیل کرد. زمینه {2}
DuplicatePrefix RegularExpressionProtection {0}: پیشوند تکراری {1}
EmptyJSONPathExpression RegularExpressionProtection {0}: عبارت JSONPath خالی است
EmptyXPathExpression RegularExpressionProtection {0}: عبارت XPath خالی است
InvalidRegularExpression RegularExpressionProtection {0}: عبارت منظم نامعتبر {1}، متن {2}
JSONPathCompilation ناموفق بود RegularExpressionProtection {0}: jsonpath {1} کامپایل نشد. زمینه {2}
NONEmptyPrefixMappedToEmptyURI RegularExpressionProtection {0}: پیشوند غیر خالی {1} را نمی توان به uri خالی نگاشت
NoPatternsToEnforce RegularExpressionProtection {0}: هیچ الگوی برای اعمال در {1} وجود ندارد
NothingToEnforce RegularExpressionProtection {0}: حداقل یکی از URIPath، QueryParam، Header، FormParam، XMLPayload، JSONPayload اجباری است
XPathCompilation Failed RegularExpressionProtection {0}: xpath {1} کامپایل نشد. زمینه {2}

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها جایی که مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول بالا آمده است. fault.name Matches "ThreatDetected"
regularexpressionprotection. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

خط مشی SOAPMessageValidation

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت ثابت
steps.messagevalidation.SourceMessageNotAvailable 500

این خطا در صورتی رخ می دهد که متغیری که در عنصر <Source> خط مشی مشخص شده است یکی از این موارد باشد:

  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست)
  • یا
  • قابل حل نیست (تعریف نشده است)
steps.messagevalidation.NonMessageVariable 500

اگر عنصر <Source> در خط مشی SOAPMessageValidation روی متغیری تنظیم شود که از نوع پیام نیست، این خطا رخ می دهد.

متغیرهای نوع پیام، کل درخواست‌ها و پاسخ‌های HTTP را نشان می‌دهند. متغیرهای جریان لبه داخلی request ، response و message از نوع پیام هستند. برای کسب اطلاعات بیشتر در مورد متغیرهای پیام، به مرجع متغیرها مراجعه کنید.

steps.messagevalidation.Failed 500 این خطا در صورتی رخ می دهد که خط مشی SOAPMessageValidation نتواند بار پیام ورودی را در برابر طرح XSD یا تعریف WSDL تأیید کند. همچنین اگر JSON یا XML نادرست در پیام بارگذاری وجود داشته باشد، رخ می دهد.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت ثابت
InvalidResourceType عنصر <ResourceURL> در خط مشی SOAPMessageValidation روی یک نوع منبع تنظیم شده است که توسط این خط مشی پشتیبانی نمی شود.
ResourceCompileFailed اسکریپت منبع ارجاع شده در عنصر <ResourceURL> خط مشی SOAPMessageValidation حاوی خطایی است که از کامپایل آن جلوگیری می کند.
RootElementNameUnspecified عنصر <Element> در خط مشی SOAPMessageValidation حاوی نام عنصر ریشه نیست.
InvalidRootElementName عنصر <Element> در خط مشی SOAPMessageValidation حاوی یک نام عنصر ریشه است که برای نامگذاری عنصر معتبر به قوانین XML پایبند نیست.
،

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت ثابت
steps.messagevalidation.SourceMessageNotAvailable 500

این خطا در صورتی رخ می دهد که متغیری که در عنصر <Source> خط مشی مشخص شده است یکی از این موارد باشد:

  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست)
  • یا
  • قابل حل نیست (تعریف نشده است)
steps.messagevalidation.NonMessageVariable 500

اگر عنصر <Source> در خط مشی SOAPMessageValidation روی متغیری تنظیم شود که از نوع پیام نیست، این خطا رخ می دهد.

متغیرهای نوع پیام، کل درخواست‌ها و پاسخ‌های HTTP را نشان می‌دهند. متغیرهای جریان لبه داخلی request ، response و message از نوع پیام هستند. برای کسب اطلاعات بیشتر در مورد متغیرهای پیام، به مرجع متغیرها مراجعه کنید.

steps.messagevalidation.Failed 500 این خطا در صورتی رخ می دهد که خط مشی SOAPMessageValidation نتواند بار پیام ورودی را در برابر طرح XSD یا تعریف WSDL تأیید کند. همچنین اگر JSON یا XML نادرست در پیام بارگذاری وجود داشته باشد، رخ می دهد.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت ثابت
InvalidResourceType عنصر <ResourceURL> در خط مشی SOAPMessageValidation روی یک نوع منبع تنظیم شده است که توسط این خط مشی پشتیبانی نمی شود.
ResourceCompileFailed اسکریپت منبع ارجاع شده در عنصر <ResourceURL> خط مشی SOAPMessageValidation حاوی خطایی است که از کامپایل آن جلوگیری می کند.
RootElementNameUnspecified عنصر <Element> در خط مشی SOAPMessageValidation حاوی نام عنصر ریشه نیست.
InvalidRootElementName عنصر <Element> در خط مشی SOAPMessageValidation حاوی یک نام عنصر ریشه است که برای نامگذاری عنصر معتبر به قوانین XML پایبند نیست.

سیاست اظهارنامه SAMLA

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
SourceNotConfigured یک یا چند عنصر زیر از خط‌مشی اعتبارسنجی SAML Assertion تعریف نشده یا خالی نیست: <Source> ، <XPath> ، <Namespaces> ، <Namespace> .
TrustStoreNotConfigured اگر عنصر <TrustStore> خالی باشد یا در خط‌مشی ValidateSAMLAssertion مشخص نشده باشد، استقرار پراکسی API با شکست مواجه می‌شود. یک فروشگاه معتبر معتبر مورد نیاز است.
NullKeyStoreAlias اگر عنصر فرزند <Alias> خالی باشد یا در عنصر <Keystore> خط‌مشی Generate SAML Assertion مشخص نشده باشد، در این صورت استقرار پراکسی API با شکست مواجه می‌شود. یک نام مستعار Keystore معتبر مورد نیاز است.
NullKeyStore اگر عنصر فرزند <Name> خالی باشد یا در عنصر <Keystore> خط‌مشی GenerateSAMLAssertion مشخص نشده باشد، در آن صورت استقرار پراکسی API با شکست مواجه می‌شود. یک نام Keystore معتبر مورد نیاز است.
NullIssuer اگر عنصر <Issuer> خالی باشد یا در خط‌مشی Generate SAML Assertion مشخص نشده باشد، استقرار پراکسی API با شکست مواجه می‌شود. یک مقدار معتبر <Issuer> مورد نیاز است.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است . نام خطا آخرین قسمت کد خطا است. fault.name = "InvalidMediaTpe"
GenerateSAMLAssertion.failed برای تأیید پیکربندی خط مشی ادعای SAML، پیشوند خطا ValidateSAMLAssertion است. GenerateSAMLAssertion.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی ServiceCallout

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.servicecallout.ExecutionFailed 500

این خطا زمانی رخ می دهد که:

  • از خط‌مشی خواسته می‌شود تا ورودی‌هایی را که دارای شکل نادرست یا نامعتبر هستند مدیریت کند.
  • سرویس هدف باطن یک وضعیت خطا را برمی گرداند (به طور پیش فرض، 4xx یا 5xx).
steps.servicecallout.RequestVariableNotMessageType 500 متغیر Request مشخص شده در خط مشی از نوع Message نیست. برای مثال، اگر رشته یا نوع دیگری غیر پیام باشد، این خطا را خواهید دید.
steps.servicecallout.RequestVariableNotRequestMessageType 500 متغیر Request مشخص شده در خط مشی از نوع Request Message نیست. برای مثال، اگر از نوع Response باشد، این خطا را خواهید دید.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
URLMissing عنصر <URL> داخل <HTTPTargetConnection> وجود ندارد یا خالی است.
ConnectionInfoMissing اگر این خط‌مشی عنصر <HTTPTargetConnection> یا <LocalTargetConnection> نداشته باشد، این خطا رخ می‌دهد.
InvalidTimeoutValue اگر مقدار <Timeout> منفی یا صفر باشد این خطا رخ می دهد.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name = "RequestVariableNotMessageType"
servicecallout. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. servicecallout.SC-GetUserData.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

سیاست SpikeArrest

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
policies.ratelimit.FailedToResolveSpikeArrestRate 500 این خطا در صورتی رخ می دهد که ارجاع به متغیر حاوی تنظیم نرخ در عنصر <Rate> به مقداری در خط مشی Spike Arrest قابل حل نباشد. این عنصر اجباری است و برای تعیین نرخ توقف سنبله به صورت int pm یا int ps استفاده می شود.
policies.ratelimit.InvalidMessageWeight 500 این خطا در صورتی رخ می دهد که مقدار تعیین شده برای عنصر <MessageWeight> از طریق متغیر جریان نامعتبر باشد (یک مقدار غیر صحیح).
policies.ratelimit.SpikeArrestViolation 429

از حد مجاز فراتر رفت.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
InvalidAllowedRate اگر نرخ توقف اسپک مشخص شده در عنصر <Rate> سیاست دستگیری Spike یک عدد صحیح نباشد یا اگر نرخ پسوند ps یا pm نداشته باشد، در آن صورت استقرار پراکسی API با شکست مواجه می‌شود.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "SpikeArrestViolation"
ratelimit. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. ratelimit.SA-SpikeArrestPolicy.failed = true

نمونه پاسخ خطا

در زیر نمونه ای از پاسخ خطا نشان داده شده است:

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

مثال قانون خطا

در زیر مثالی از قانون خطا برای رسیدگی به خطای SpikeArrestViolation نشان داده شده است:

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

سیاست جمع آوری آمار

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

Runtime errors

None.

Deployment errors

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

Fault variables

None.

خط مشی VerifyAPIKey

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

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
keymanagement.service.CompanyStatusNotActive 401 The Company associated with the Developer App that has the API key you are using has an inactive status. When a Company's status is set to inactive, you cannot access the developers or apps associated with that Company. An org admin can change a Company's status using the management API. See Set the Status of a Company.
keymanagement.service.DeveloperStatusNotActive 401

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

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

Deployment errors

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

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

Fault variables

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

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

Example error responses

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

Example fault rule

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

بررسی سیاست JWS

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP زمانی رخ می دهد
steps.jws.AlgorithmInTokenNotPresentInConfiguration 401 زمانی رخ می دهد که خط مشی تأیید چندین الگوریتم داشته باشد
steps.jws.AlgorithmMismatch 401 الگوریتم مشخص شده در سربرگ توسط خط مشی Generate با الگوریتم مورد انتظار در خط مشی تأیید مطابقت نداشت. الگوریتم های مشخص شده باید مطابقت داشته باشند.
steps.jws.ContentIsNotDetached 401 <DetachedContent> زمانی مشخص می شود که JWS حاوی محتویات جدا شده نباشد.
steps.jws.FailedToDecode 401 این خط مشی قادر به رمزگشایی JWS نبود. JWS احتمالاً خراب است.
steps.jws.InsufficientKeyLength 401 برای یک کلید کمتر از 32 بایت برای الگوریتم HS256
steps.jws.InvalidClaim 401 برای ادعای مفقود یا عدم تطابق ادعا، یا عدم تطابق سرصفحه یا سرصفحه.
steps.jws.InvalidCurve 401 منحنی مشخص شده توسط کلید برای الگوریتم منحنی بیضی معتبر نیست.
steps.jws.InvalidJsonFormat 401 JSON نامعتبر در هدر JWS یافت شد.
steps.jws.InvalidJws 401 این خطا زمانی رخ می دهد که تأیید امضای JWS ناموفق باشد.
steps.jws.InvalidPayload 401 محموله JWS نامعتبر است.
steps.jws.InvalidSignature 401 <DetachedContent> حذف شده است و JWS دارای یک بار محتوای جدا شده است.
steps.jws.KeyIdMissing 401 خط‌مشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده می‌کند، اما JWS امضاشده دارای ویژگی kid در سرصفحه نیست.
steps.jws.KeyParsingFailed 401 کلید عمومی از اطلاعات کلید داده شده قابل تجزیه نیست.
steps.jws.MissingPayload 401 محموله JWS وجود ندارد.
steps.jws.NoAlgorithmFoundInHeader 401 زمانی رخ می دهد که JWS سربرگ الگوریتم را حذف کند.
steps.jws.NoMatchingPublicKey 401 خط‌مشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده می‌کند، اما kid در JWS امضاشده در JWKS فهرست نشده است.
steps.jws.UnhandledCriticalHeader 401 سرصفحه ای که توسط خط مشی Verify JWS در هدر crit یافت می شود در KnownHeaders فهرست نشده است.
steps.jws.UnknownException 401 یک استثنا ناشناخته رخ داد.
steps.jws.WrongKeyType 401 نوع کلید اشتباه مشخص شده است. به عنوان مثال، اگر یک کلید RSA برای یک الگوریتم منحنی بیضی یا یک کلید منحنی برای یک الگوریتم RSA مشخص کنید.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا زمانی رخ می دهد
InvalidAlgorithm تنها مقادیر معتبر عبارتند از: RS256، RS384، RS512، PS256، PS384، PS512، ES256، ES384، ES512، HS256، HS384، HS512.

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

سایر خطاهای احتمالی استقرار

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "TokenExpired"
JWS.failed همه خط مشی های JWS در صورت خرابی یک متغیر را تنظیم می کنند. jws.JWS-Policy.failed = true

نمونه پاسخ خطا

برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.

مثال قانون خطا

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

بررسی سیاست JWT

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.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "TokenExpired"
JWT.failed همه خط مشی های JWT متغیرهای یکسانی را در صورت خرابی تنظیم می کنند. JWT.failed = true

نمونه پاسخ خطا

کدهای خطای خط مشی JWT

برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.

مثال قانون خطا

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

خط مشی XMLThreatProtection

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.xmlthreatprotection.ExecutionFailed 500 خط مشی XMLThreatProtection می تواند انواع مختلفی از خطاهای ExecutionFailed را ایجاد کند. بیشتر این خطاها زمانی رخ می‌دهند که از یک آستانه مشخص در خط‌مشی تجاوز کند. این نوع خطاها عبارتند از: طول نام عنصر ، تعداد فرزند ، عمق گره ، تعداد ویژگی ، طول نام ویژگی و بسیاری دیگر. می توانید لیست کامل را در مبحث عیب یابی خطای زمان اجرا خط مشی XMLThreatProtection مشاهده کنید.
steps.xmlthreatprotection.InvalidXMLPayload 500 اگر بار پیام ورودی مشخص شده توسط عنصر <Source> خط مشی XMLThreatProtection یک سند XML معتبر نباشد، این خطا رخ می دهد.
steps.xmlthreatprotection.SourceUnavailable 500 این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> یکی از این موارد باشد:
  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست)
  • یکی از مقادیر معتبر request ، response یا message نیست
steps.xmlthreatprotection.NonMessageVariable 500 این خطا در صورتی رخ می دهد که عنصر <Source> روی متغیری تنظیم شود که از نوع پیام نیست.

یادداشت ها:

  • نام خطا ExecutionFailed نام خطای پیش‌فرض است و صرف‌نظر از نوع خطای شناسایی‌شده، برگردانده می‌شود. با این حال، این پیش فرض را می توان با تنظیم یک ویژگی در سطح سازمان تغییر داد. هنگامی که این ویژگی تنظیم شود، نام خطا نشان دهنده خطای واقعی است. به عنوان مثال، "TextExceeded" یا "AttrValueExceeded". برای جزئیات به یادداشت های استفاده مراجعه کنید.
  • وضعیت 500 HTTP پیش فرض است. با این حال، وضعیت HTTP را می توان برای خطاهای جریان درخواست با تنظیم یک ویژگی در سطح سازمان به 400 تغییر داد. برای جزئیات به یادداشت های استفاده مراجعه کنید.

خطاهای استقرار

هیچ کدام.

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name Matches "SourceUnavailable"
xmlattack. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. xmlattack.XPT-SecureRequest.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی XMLtoJSON

این بخش کدهای خطا و پیام‌های خطایی را که برگردانده می‌شوند و متغیرهای خطا را که توسط Edge تنظیم می‌شوند، هنگامی که این خط‌مشی خطا را راه‌اندازی می‌کند، توضیح می‌دهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

خطاهای زمان اجرا

این خطاها ممکن است هنگام اجرای سیاست رخ دهند.

کد خطا وضعیت HTTP علت رفع کنید
steps.xmltojson.ExecutionFailed 500 این خطا زمانی رخ می دهد که بار ورودی (XML) خالی باشد یا XML ورودی نامعتبر یا بد شکل باشد.
steps.xmltojson.InCompatibleType 500 این خطا در صورتی رخ می دهد که نوع متغیر تعریف شده در عنصر <Source> و عنصر <OutputVariable> یکسان نباشد. اجباری است که نوع متغیرهای موجود در عنصر <Source> و عنصر <OutputVariable> مطابقت داشته باشد.
steps.xmltojson.InvalidSourceType 500 این خطا در صورتی رخ می دهد که نوع متغیر مورد استفاده برای تعریف عنصر <Source> نامعتبر باشد. انواع معتبر متغیر پیام و رشته هستند.
steps.xmltojson.OutputVariableIsNotAvailable 500 اگر متغیر مشخص شده در عنصر <Source> خط مشی XML به JSON از نوع string باشد و عنصر <OutputVariable> تعریف نشده باشد، این خطا رخ می دهد. عنصر <OutputVariable> زمانی اجباری است که متغیر تعریف شده در عنصر <Source> از نوع رشته باشد.
steps.xmltojson.SourceUnavailable 500 این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> خط مشی XML به JSON یکی از این موارد باشد:
  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
  • قابل حل نیست (تعریف نشده است)

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت رفع کنید
EitherOptionOrFormat اگر یکی از عناصر <Options> یا <Format> در خط‌مشی XML به JSON اعلان نشده باشد، استقرار پراکسی API با شکست مواجه می‌شود.
UnknownFormat اگر عنصر <Format> در خط مشی XML به JSON دارای یک قالب ناشناخته تعریف شده باشد، در آن صورت استقرار پروکسی API با شکست مواجه می شود. فرمت های از پیش تعریف شده عبارتند از: xml.com ، yahoo ، google ، و badgerFish .

متغیرهای خطا

این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. fault.name = "SourceUnavailable"
xmltojson. policy_name .failed policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. xmltojson.XMLtoJSON-1.failed = true

نمونه پاسخ خطا

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

مثال قانون خطا

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

خط مشی XSLTransform

Runtime errors

These errors can occur when the policy executes.

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

Deployment errors

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

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