קטלוג שגיאות זמן ריצה

אתם מציגים את מסמכי התיעוד של Apigee Edge.
כניסה למסמכי העזרה של Apigee X.
info

שגיאות ב-Apigee Edge

כששולחים בקשות API דרך Apigee Edge, הרכיבים של Apigee Edge – נתבים ומעבדי הודעות – או שרתי הקצה העורפי יכולים להחזיר שגיאות לאפליקציות הלקוח.

שגיאות ממעבדי ההודעות

מעבד ההודעות הוא הרכיב המרכזי ב-Apigee Edge שעובד על המדיניות ומקיים אינטראקציה עם שרתי הקצה העורפי. היא יכולה להחזיר שגיאות אם היא מזהה בעיות כמו:

  • בעיות בקישוריות לרשת, כשלים בלחיצת יד בפרוטוקול TLS, חוסר זמינות של שרת עורפי, חוסר תגובה במהלך התקשורת עם השרת העורפי
  • כשלים במהלך ביצוע המדיניות
  • כותרות HTTP, קידוד, נתיב לא תקינים, אי ציות למפרטי HTTP, חרגה מהמגבלות של המוצר וכו':
    • באמצעות בקשת HTTP שנשלחה על ידי אפליקציות הלקוח
    • או

    • עם תגובת HTTP שנשלחה על ידי שרת הקצה העורפי
  • ועוד הרבה דברים

דוגמה לשגיאה ממעבד ההודעות

עיבוד ההודעות תמיד מחזיר קוד סטטוס HTTP, ואחריו הודעת שגיאה וקוד שגיאה בפורמט JSON, כפי שמוצג בהמשך:

אפליקציית הלקוח מקבלת קוד תגובה כמו בדוגמה הבאה:

HTTP/1.1 414 Request-URI Too Long

תגובת השגיאה ממעבד ההודעות מופיעה בפורמט הבא:

{
   "fault":{
      "faultstring":"request line size exceeding 7,168",
      "detail":{
         "errorcode":"protocol.http.TooBigLine"
      }
   }
}

תיאור השדות בתגובת השגיאה:

שדה תיאור
faultstring מכילה הודעת שגיאה שמתארת את הסיבה האפשרית לשגיאה
errorcode קוד השגיאה (שנקרא גם קוד שגיאה) שמשויך לשגיאה

קטלוג שגיאות בזמן ריצה

בקטלוג השגיאות הזה מפורט כל המידע שצריך לדעת על קודי השגיאה בסביבת זמן הריצה (לשגיאות שאינן שקשורות למדיניות) שמוחזרים על ידי הרכיב Message Processor של Apigee Edge. הוא כולל את הפרטים הבאים לגבי כל אחד מקודי השגיאה:

  • קוד מצב HTTP
  • הודעת שגיאה
  • סיבות אפשריות לשגיאה
  • כל המגבלות של המוצר או המפרטים של HTTP שמשויכים אליו
  • מדריכים וסרטונים שכוללים הוראות לאבחון הגורם לשגיאה ופתרונות יעילים שאפשר ליישם כדי לפתור את השגיאה בעצמכם (אם יש כאלה)
  • תיקון שאפשר להחיל כדי לפתור את השגיאה בעצמכם

הקטגוריות הבאות של קודי שגיאה נכללות במאמר:

בעזרת תיבת החיפוש שלמטה אפשר לסנן את הטבלה ולהציג את המידע שלמעלה עבור קוד שגיאה ספציפי. אפשר לחפש את קוד הסטטוס או כל תוכן בשדה כלשהו בטבלה.

קוד שגיאה תיאור תיקון

flow.*

flow.APITimedOut

  • קוד מצב HTTP:
504 Gateway Timeout
  • הודעת השגיאה:
API timed out
  • הסיבה האפשרית:

השגיאה הזו מתרחשת אם:

  • שרת הקצה לא מגיב תוך פרק הזמן שהוגדרה לתפוגה על ידי המאפיין api.timeout בשרת ה-proxy הספציפי של ה-API.
  • למדיניות לוקח הרבה זמן בגלל פעולות אינטנסיביות מבחינת המחשוב, עומס גבוה או ביצועים נמוכים.

הערה: במדריך הזה מפורטות הוראות לפתרון בעיות שקשורות לקוד השגיאה messaging.adaptors.http.flow.GatewayTimeout. עם זאת, אפשר להשתמש באותו מדריך כדי לפתור בעיות שקשורות לקוד השגיאה flow.APITimedOut.

PLAYBOOK

flow.SharedFlowNotFound

  • קוד מצב HTTP:
500 Internal Server Error
  • הודעת השגיאה:
Shared Flow {shared_flow_name} Not Found
  • הסיבה האפשרית:

השגיאה הזו מתקבלת אם התהליך המשותף הספציפי:

  • לא קיים
  • או

  • קיים אבל לא נפרס
PLAYBOOK

messaging.adaptors.http.flow

messaging.adaptors.http.flow.ApplicationNotFound

  • קוד מצב HTTP:
404 Not Found
  • הודעת השגיאה:
Unable to identify proxy for host: {virtual_host} and url: {pathsuffix}
  • הסיבה האפשרית:

השגיאה הזו מתרחשת באחת מהאפשרויות הבאות:

  1. שרת ה-proxy הספציפי ל-API הוא:
    1. לא מוגדר לקבל בקשות במארח הווירטואלי הספציפי
    2. לא הוגדר לקבל בקשות בנתיב הספציפי שנעשה בו שימוש בבקשה
    3. לא נפרסו בסביבה הספציפית שבה אתם מנסים לשלוח את בקשות ה-API
    4. לא נפרסו במעבדי הודעות אחדים או יותר
  2. הסביבה הספציפית שבה אתם מנסים לשלוח את בקשות ה-API לא נטענת במעבד הודעות אחד או יותר
מדריך
השגיאה הזו יכולה להתרחש גם אם למספר מארחים וירטואליים יש אותו כתובת חלופית של מארח ומספר יציאה. PLAYbook

messaging.adaptors.http.flow.DecompressionFailureAtRequest

  • קוד מצב HTTP:
400 Bad Request
  • הודעת השגיאה:
Decompression failure at request
  • הסיבה האפשרית:

השגיאה הזו מתרחשת רק אם:

  • הקידוד שצוין בכותרת הבקשה של ה-HTTP Content-Encoding תקין ו נתמך על ידי Apigee Edge,
  • אבל

  • פורמט המטען הייעודי (payload) שנשלח על ידי הלקוח כחלק מהבקשה ל-HTTP לא תואם לפורמט הקידוד שצוין בכותרת Content-Encoding
PLAYBOOK

messaging.adaptors.http.flow.DecompressionFailureAtResponse

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Decompression failure at response
  • הסיבה האפשרית:

השגיאה הזו מתרחשת רק אם:

  • הקידוד שצוין בכותרת התגובה של HTTP Content-Encoding של הקצה העורפי/שרת היעד תקין ו נתמך על ידי Apigee Edge,
  • אבל

  • פורמט המטען הייעודי שנשלח על ידי הקצה העורפי/שרת היעד כחלק מתגובת ה-HTTP לא תואם לפורמט הקידוד שצוין בכותרת Content-Encoding
PLAYBOOK

messaging.adaptors.http.flow.ErrorResponseCode

  • קוד מצב HTTP:
500

PLAYbook

סרטון

  • הודעת השגיאה:
הודעת השגיאה והפורמט עשויים להשתנות בהתאם להטמעה של שרת הקצה העורפי.
  • הסיבה האפשרית:
השגיאה הזו מתקבלת אם שרת הקצה העורפי מגיב עם קוד הסטטוס 500 ל-Apigee Edge.
  • קוד מצב HTTP:
503

מדריך

סרטון

  • הודעת השגיאה:
הודעת השגיאה והפורמט עשויים להשתנות בהתאם להטמעה של שרת הקצה העורפי.
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם שרת הקצה העורפי מגיב ל-Apigee Edge עם קוד סטטוס 503.
  • קוד מצב HTTP:
504 PLAYBOOK
  • הודעת השגיאה:
הודעת השגיאה והפורמט עשויים להשתנות בהתאם להטמעה של שרת הקצה העורפי.
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם שרת הקצה העורפי מגיב ל-Apigee Edge עם קוד סטטוס 504.

הערה: קוד השגיאה messaging.adaptors.http.flow.ErrorResponseCode לא מוחזר כחלק מהודעת השגיאה שנשלחת לאפליקציות הלקוח. הסיבה לכך היא שקוד השגיאה הזה מוגדר על ידי Apigee Edge בכל פעם ששרת הקצה העורפי משיב עם שגיאה ואחד מקודי הסטטוס 4XX או 5XX. אפשר לראות את קוד השגיאה הזה ב-API Monitoring, ביומני הגישה של NGINX או במסד הנתונים של Analytics.

messaging.adaptors.http.flow.GatewayTimeout

  • קוד מצב HTTP:
504 Gateway Timeout
  • הודעת השגיאה:
Gateway Timeout
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם שרת הקצה לא מגיב חזרה למעבד ההודעות של Apigee Edge בתוך פרק הזמן של זמן הקצאת הזמן לתפוגה של קלט/פלט שהוגדר במעבד ההודעות.
PLAYbook

messaging.adaptors.http.flow.LengthRequired

  • קוד מצב HTTP:
411 Length Required
  • הודעת השגיאה:
'Content-Length' is missing
  • סיבה אפשרית:

השגיאה הזו מתרחשת אם הכותרת Content-Length לא מועברת על ידי אפליקציית הלקוח כחלק מהבקשות HTTP ‏POST ו-PUT שנשלחות אל Apigee Edge.

הערה: לא ניתן לתעד בכלי המעקב בקשות שנכשלו עם השגיאה הזו, כי מעבד ההודעות מבצע את האימות הזה בשלב מוקדם מאוד, הרבה לפני עיבוד הבקשה וביצוע מדיניות כלשהי בשרת ה-proxy של ה-API.

  • מפרט HTTP:
RFC סעיף 3.3.2: Content-Length

תיקון

כדי לפתור את השגיאה הזו, מבצעים את השלבים הבאים:

  1. חשוב לוודא שהיישום של הלקוח תמיד מעביר את הכותרת Content-Length כחלק מהבקשות HTTP‏ POST ו-PUT שנשלחות אל Apigee Edge. לדוגמה:

    curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
    
  2. גם אם מעבירים עומס נתונים ריק עם בקשות POST ו-PUT, צריך לוודא שהכותרת Content-Length: 0 מועברת. לדוגמה:

    curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
    

messaging.adaptors.http.flow.NoActiveTargets

  • קוד מצב HTTP:
503 Service Unavailable
  • הודעת השגיאה:
The Service is temporarily unavailable
  • הסיבה האפשרית:

השגיאה הזו מתרחשת באחד מהתרחישים הבאים, אם אתם משתמשים ב- TargetServer ב-Apigee Edge:

  1. רזולוציית ה-DNS השגויה של מארח שרת הקצה העורפי על ידי שרת ההרשאות בהתאמה אישית גרמה לכתובות IP שגויות שהובילו לשגיאות בחיבור.
  2. שגיאות זמן קצוב פג לחיבור עקב:
    1. הגבלה של חומת האש בשרת הקצה העורפי מונעת מ-Apigee Edge להתחבר לשרת הקצה העורפי.
    2. בעיות בקישוריות לרשת בין Apigee Edge לבין שרת הקצה העורפי.
  3. המארח שצוין ב-TargetServer שגוי או מכיל תווים לא רצויים (כמו רווח).

מדריך

סרטון

השגיאה הזו יכולה להתרחש גם אם בדיקות התקינות שהוגדרו למעקב אחרי בדיקות התקינות של שרתי היעד נכשלו.

PLAYBOOK

סרטון

messaging.adaptors.http.flow.RequestTimeOut

  • קוד מצב HTTP:
408 Request Timeout
  • הודעת השגיאה:
Request timed out
  • הסיבה האפשרית:
השגיאה הזו מתקבלת אם מעבד ההודעות של Apigee Edge לא מקבל את המטען הייעודי (payload) של הבקשה מאפליקציית הלקוח עבור תקופת הזמן הקצוב לתפוגה של קלט/פלט (I/O) ברכיב של מעבד ההודעות.

תיקון

חשוב לוודא שאפליקציית הלקוח שולחת את עומס העבודה של הבקשה במסגרת פרק הזמן של זמן הקצאת הזמן לתפוגה של קלט/פלט שהוגדר ברכיב Message Processor של Apigee Edge.

messaging.adaptors.http.flow.ServiceUnavailable

  • קוד מצב HTTP:
503 Service Unavailable
  • הודעת השגיאה:
The Service is temporarily unavailable
  • הסיבה האפשרית:

השגיאה הזו מתרחשת באחד מהתרחישים הבאים:

  1. כתוצאה מהפענוח השגוי של DNS של מארח השרת העורפי על ידי שרת ההרשאה המותאם אישית, נוצרו כתובות IP שגויות שהובילו לשגיאות בחיבור.
  2. שגיאות זמן קצוב פג לחיבור בגלל:
    1. הגבלה של חומת אש בשרת הקצה העורפי מונעת מ-Apigee Edge להתחבר לשרת הקצה העורפי.
    2. בעיות בקישוריות לרשת בין Apigee Edge לבין שרת הקצה העורפי.
  3. מארח שרת היעד שצוין בנקודת הקצה (endpoint) של היעד שגוי או מכיל תווים לא רצויים (כמו רווח).

מדריך

כשל בחיפוש DNS:

סרטון

קישוריות רשת:

סרטון

השגיאה הזו יכולה להתרחש גם אם שרת הקצה העורפי סוגר את החיבור לפני הזמן בזמן שמעבד ההודעות עדיין שולח את עומס העבודה של הבקשה לשרת הקצה העורפי. PLAYBOOK

messaging.adaptors.http.flow.SslHandshakeFailed

  • קוד מצב HTTP:
503 Service Unavailable
  • הודעת השגיאה:
SSL Handshake failed {error_message}
  • הסיבה האפשרית:

השגיאה הזו מתרחשת במהלך תהליך לחיצת היד של SSL בין מעבד ההודעות של Apigee Edge לבין שרת הקצה העורפי, אם:

  1. מאגר האמון של מעבד ההודעות של Apigee Edge:
    • מכילה שרשרת אישורים שלא תואמת לשרשרת האישורים המלאה של שרת הקצה העורפי
    • או

    • לא מכיל את שרשרת האישורים המלאה של שרת הקצה העורפי
  2. שרשרת האישורים שהוצגה על ידי שרת הקצה העורפי:
    • מכיל שם דומיין מוגדר במלואו (FQDN) שלא תואם לשם המארח שצוין בנקודת הקצה של היעד
    • או

    • מכילה שרשרת אישורים שגויה או חלקית

PLAYBOOK

סרטון

messaging.adaptors.http.flow.UnexpectedEOFAtTarget

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Unexpected EOF at target
  • הסיבה האפשרית:

השגיאה הזו מתרחשת באחת מהאפשרויות הבאות:

  1. TargetServer לא מוגדר כראוי לתמיכה בחיבורי TLS/SSL ב-Apigee Edge.
  2. שרת הקצה העורפי עשוי לסגור את החיבור באופן פתאומי, בזמן ש-Apigee Edge מחכה לתגובה משרת הקצה העורפי.
  3. זמן הקצאת הזמן לתפוגה של ה-Keep-alive מוגדר באופן שגוי ב-Apigee ובשרת הקצה העורפי.
PLAYBOOK

messaging.runtime.*

messaging.runtime.RouteFailed

  • קוד מצב HTTP:
500 Internal Server Error
  • הודעת השגיאה:
Unable to route the message to a TargetEndpoint
  • הסיבה האפשרית:

השגיאה הזו מתרחשת אם ל-Apigee Edge אין אפשרות לנתב את הבקשה לאף אחד מ-TargetEndpoints כי:

  • אין תנאי של כלל מסלול (<RouteRule>) שתואם לבקשה בשרת proxy
  • וגם

  • לא הוגדר כלל ברירת מחדל לניתוב ב-ProxyEndpoint (כלומר, <RouteRule> ללא תנאי)

תיקון

כדי לפתור את השגיאה הזו, פועלים לפי ההוראות הבאות:

  1. בודקים את כללי הניתוב שהוגדרו ב-ProxyEndpoint ומשנים אותם כדי לוודא שיש לפחות תנאי אחד של כלל ניתוב שתואמת לבקשה.
  2. מומלץ להגדיר כלל נתיב ברירת מחדל ללא תנאי כשיש כמה כללי RouteRule.
  3. חשוב לוודא שכלל המסלול שמוגדר כברירת מחדל תמיד מוגדר אחרון ברשימה של המסלולים המותנים, כי הכללים נבדקים מלמעלה למטה ב-ProxyEndpoint.

למידע נוסף על הגדרת תנאים של <RouteRule> ב-ProxyEndpoint, ראו יעדים מותנים.

messaging.runtime.SenseRaiseFault

  • קוד מצב HTTP:
403 Forbidden
  • הודעת השגיאה:
Sense Fault
  • סיבה אפשרית:
השגיאה הזו מתרחשת אם בקשת API נשלחת מכתובת IP מסוימת של לקוח, שנחסמה כחלק מהכללים של Apigee Sense.

תיקון

כדי לפתור את השגיאה הזו, פועלים לפי ההוראות הבאות:

  1. מוודאים שחסמתם את כתובת ה-IP של הלקוח הספציפי על ידי בדיקת הכללים שהוגדרו ב-Apigee Sense. אם היא חסומה, סימן שהיא פועלת כמתוכנן.
  2. אם כתובת ה-IP הספציפית של הלקוח לא חסומה, אבל השגיאה הזו עדיין מופיעה, צריך לפנות אל התמיכה של Apigee Edge.

protocol.http.* - Caused due to bad request

protocol.http.BadFormData

  • קוד מצב HTTP:
500 Internal Server Error
  • הודעת השגיאה:
Bad Form Data
  • סיבה אפשרית:

השגיאה הזו מתרחשת רק אם כל התנאים הבאים מתקיימים:

  1. בקשת ה-HTTP שנשלחת על ידי הלקוח אל Apigee Edge מכילה:
    • Content-Type: application/x-www-form-urlencoded, וגם
    • נתוני טפסים עם סימן האחוז (%), או סימן האחוז (%) ואחריו תווים הקסדצימליים לא חוקיים שאסור להשתמש בהם, בהתאם ל טפסים – סעיף 17.13.4.1.
  2. שרת ה-API ב-Apigee Edge קורא את הפרמטרים הספציפיים של הטופס שמכילים תווים אסורים באמצעות המדיניות ExtractVariables או AssignMessage בתהליך הבקשה.
PLAYBOOK

protocol.http.DuplicateHeader

  • קוד מצב HTTP:
400 Bad Request
  • הודעת השגיאה:
Duplicate Header "{header_name}"
  • סיבה אפשרית:
השגיאה הזו מתרחשת אם כותרת HTTP ספציפית שאסור לכלול כפילויות ב-Apigee Edge מופיעה יותר מפעם אחת עם ערכים זהים או שונים, כחלק מבקשת ה-HTTP שנשלחת על ידי אפליקציית הלקוח אל Apigee Edge.
  • מפרט HTTP:
RFC 7230, סעיף 3.2.2: סדר השדות
PLAYBOOK

protocol.http.EmptyHeaderName

  • קוד מצב HTTP:
400 Bad Request
  • הודעת השגיאה:
Header name cannot be empty
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם שם הכותרת שנשלח כחלק מבקשת ה-HTTP על ידי אפליקציית הלקוח אל Apigee Edge ריק.
  • מפרט HTTP:
RFC 7230, סעיף 3.2: שדות כותרת

תיקון

חשוב לוודא שבקשת ה-HTTP שנשלחת על ידי אפליקציית הלקוח ל-Apigee Edge תמיד מכילה שם כותרת חוקי, בהתאם ל- RFC 7230, סעיף 3.2: שדות כותרת.

protocol.http.HeaderNameWithNonAsciiChar

  • קוד מצב HTTP:
400 Bad Request
  • הודעת השגיאה:
Header {header_name} contains non ascii character {character}
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם שם הכותרת שנשלח כחלק מבקשת ה-HTTP על ידי אפליקציית הלקוח אל Apigee Edge מכיל תווים שאינם תווים ASCII.
  • מפרט HTTP:

RFC 7230, סעיף 3.2: שדות כותרת וגם RFC 7230, סעיף 3.2.6: רכיבי ערך השדה

תיקון

חשוב לוודא שבקשת ה-HTTP של הלקוח שנשלחת אל Apigee Edge לא מכילה תווים שאינם ASCII בשמות הכותרות, בהתאם ל- RFC 7230, סעיף 3.2.6: רכיבי ערך השדה.

protocol.http.HeaderWithInvalidChar

  • קוד מצב HTTP:
400 Bad Request
  • הודעת השגיאה:
Header {header_name} contains invalid character {character}
  • סיבה אפשרית:
השגיאה הזו מתרחשת אם שם הכותרת שנשלח כחלק מבקשת ה-HTTP על ידי אפליקציית הלקוח אל Apigee Edge מכיל תווים לא חוקיים, כמו סימן השוויון (=), פסיק (,), נקודה-פסיק (;) ,Tab, CRLF ותו של שורה חדשה.
  • מפרט HTTP:

RFC 7230, סעיף 3.2: שדות כותרת וגם RFC 7230, סעיף 3.2.6: רכיבי ערך השדה

תיקון

מוודאים שבקשת ה-HTTP שאפליקציית הלקוח שולחת ל-Apigee Edge לא מכילה תווים לא חוקיים בשמות הכותרות, לפי RFC 7230, סעיף 3.2.6: רכיבי ערך שדה

protocol.http.InvalidPath

  • קוד מצב HTTP:
400 Bad Request
  • הודעת השגיאה:
Invalid path {path}
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם הנתיב בכתובת ה-URL של בקשת ה-HTTP שנשלחת על ידי אפליקציית הלקוח ל-Apigee Edge מכיל תווים שאסורים בהתאם למפרט RFC 3986, בקטע 3.3: נתיב.
  • מפרט HTTP:

RFC 3986, סעיף 3: רכיבי תחביר RFC 3986, סעיף 3.3: נתיב

תיקון

מוודאים שהנתיב בכתובת ה-URL של בקשת ה-HTTP שנשלחה על ידי אפליקציית הלקוח ל-Apigee Edge לא מכיל תווים שאסורים בתור לפי RFC 3986, סעיף 3.3: נתיב.

protocol.http.TooBigBody

  • קוד מצב HTTP:
413 Request Entity Too Large
  • הודעת השגיאה:
Body buffer overflow
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם גודל המטען הייעודי (payload) שנשלח על ידי אפליקציית הלקוח כחלק מבקשה ל-HTTP אל Apigee Edge גדול מהמגבלה המותרת ב-Apigee Edge.
  • מגבלות:
מגבלות ב-Apigee Edge
PLAYBOOK

protocol.http.TooBigHeaders

  • קוד מצב HTTP:
431 Request Header Fields Too Large
  • הודעת השגיאה:
request headers size exceeding {limit}
  • הסיבה האפשרית:
הגודל הכולל של כל כותרות הבקשה שנשלחות על ידי אפליקציית הלקוח כחלק מבקשת ה-HTTP אל Apigee Edge גדול מהמגבלה המותרת ב-Apigee Edge.
  • מפרט HTTP:
RFC 6585, סעיף 5: 431 Request Header Fields Too Large
  • מגבלות:
מגבלות של Apigee Edge
PLAYBOOK

protocol.http.TooBigLine

  • קוד מצב HTTP:
414 Request-URI Too Long
  • הודעת השגיאה:
request line size exceeding {limit}
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם הגודל של שורת הבקשה שנשלחת על ידי אפליקציית הלקוח כחלק מבקשת HTTP אל Apigee Edge גדול מהמגבלה המותרת ב-Apigee Edge.
  • מגבלות:
מגבלות ב-Apigee Edge
PLAYBOOK

protocol.http.UnsupportedEncoding

  • קוד מצב HTTP:
415 Unsupported Media
  • הודעת השגיאה:
Unsupported Encoding "{encoding}"
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם הכותרת Content-Encoding שנשלחת על ידי הלקוח כחלק מתגובת ה-HTTP מכילה פורמט קידוד/מטען שימושי שלא נתמך על ידי Apigee Edge.
  • מפרט HTTP:
RFC 7231, סעיף 6.5.13: 415 Unsupported Media Type
PLAYBOOK

protocol.http.* - Caused by target

protocol.http.BadPath

  • קוד מצב HTTP:
500 Internal Server Error
  • הודעת השגיאה:
Invalid request path
  • הסיבה האפשרית:
השגיאה הזו מתקבלת אם כתובת ה-URL של הבקשה של שרת הקצה העורפי, שמיוצגת על ידי משתנה הזרימה target.url, מכילה נתיב שמתחיל בסימן שאלה (?) במקום בקו נטוי (/), והוא לא תקין.
  • מפרט HTTP:

RFC 3986, סעיף 3: רכיבי תחביר וגם RFC 3986, סעיף 3.3: נתיב

PLAYBOOK

protocol.http.DuplicateHeader

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Duplicate Header "{header_name}"
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם כותרת ה-HTTP הספציפית שאסור לכלול בה כפילויות ב-Apigee Edge מופיעה יותר מפעם אחת עם ערכים זהים או שונים, כחלק מתגובת ה-HTTP שנשלחת על ידי שרת הקצה ל-Apigee Edge.
  • מפרט HTTP:
RFC 7230, סעיף 3.2.2: סדר השדות
PLAYBOOK

protocol.http.EmptyHeaderName

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Header name cannot be empty
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם שם הכותרת שנשלח על ידי שרת הקצה כחלק מתגובת ה-HTTP ל-Apigee Edge ריק.
  • מפרט HTTP:
RFC 7230, סעיף 3.2: שדות כותרת

תיקון

חשוב לוודא שתגובה ה-HTTP שנשלחת על ידי שרת הקצה ל-Apigee Edge תמיד מכילה שם כותרת תקין, בהתאם ל- RFC 7230, סעיף 3.2: שדות כותרת.

protocol.http.EmptyPath

  • קוד מצב HTTP:
500 Internal Server Error
  • הודעת השגיאה:
Request path cannot be empty
  • סיבה אפשרית:
השגיאה הזו מתרחשת אם כתובת ה-URL של בקשת ה-HTTP של שרת הקצה העורפי, שמיוצגת על ידי משתנה התהליך target.url, מכילה נתיב ריק.
  • מפרט HTTP:

RFC 3986, סעיף 3: רכיבי תחביר וגם RFC 3986, סעיף 3.3: נתיב

PLAYBOOK

protocol.http.HeaderNameWithNonAsciiChar

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Header {header_name} contains non ascii character {character}
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם שם הכותרת שנשלח על ידי שרת הקצה העורפי כחלק מתגובת ה-HTTP אל Apigee Edge מכיל תווים שאינם תווים ASCII.
  • מפרט HTTP:

RFC 7230, סעיף 3.2: שדות כותרת וגם RFC 7230, סעיף 3.2.6: רכיבי ערך השדה

תיקון

חשוב לוודא שתגובת ה-HTTP של שרת הקצה שנשלחת אל Apigee Edge לא מכילה תווים שאינם ASCII בשמות הכותרות, בהתאם ל- RFC 7230, סעיף 3.2.6: רכיבי ערך השדה.

protocol.http.HeaderWithInvalidChar

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Header {header_name} contains invalid character {character}
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם שם הכותרת שנשלח על ידי שרת הקצה העורפי כחלק מתגובת ה-HTTP מכיל תווים לא חוקיים, כמו סימן השוויון (=), פסיק (,), נקודה-פסיק (;) ,Tab, CRLF ותו של שורה חדשה.
  • מפרט HTTP:

RFC 7230, סעיף 3.2: שדות כותרת וגם RFC 7230, סעיף 3.2.6: רכיבי ערך השדה

תיקון

חשוב לוודא שתגובת ה-HTTP של שרת הקצה שנשלחת אל Apigee Edge לא מכילה תווים לא חוקיים בשמות הכותרות, בהתאם ל- RFC 7230, סעיף 3.2.6: רכיבי ערך השדה.

protocol.http.ProxyTunnelCreationFailed

  • קוד מצב HTTP:
503 Service Unavailable
  • הודעת השגיאה:
Proxy refused to create tunnel with response status {status code}
  • הסיבה האפשרית:

השגיאה הזו מתרחשת במהלך יצירת המנהרה בין Apigee Edge לבין שרת הקצה העורפי על ידי שרת ה-proxy בגלל חומת אש, ACL (רשימת בקרת גישה), בעיות DNS, זמינות הזמינות של שרת הקצה העורפי וכו'.

הערה: קוד הסטטוס בהודעת השגיאה (faultstring) מספק את הסיבה העיקרית לבעיה.

PLAYBOOK

protocol.http.Response306Reserved

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Response Status code 306 is reserved, so can't be used.
  • הסיבה האפשרית:

השגיאה הזו מתרחשת אם שרת הקצה העורפי של Apigee Edge מחזיר את קוד המצב 306.

קוד הסטטוס 306 הוגדר בגרסה קודמת של מפרט ה-HTTP. בהתאם למפרט הנוכחי של HTTP, הקוד הזה שמוּר ואי אפשר להשתמש בו.

  • מפרט HTTP:
RFC 7231, סעיף 6.3.5: 306 שמור

תיקון

מאחר שקוד המצב 306 שמור, חשוב לוודא ששרת הקצה העורפי לא משתמש בקוד המצב הזה בזמן שליחת תגובה אל Apigee Edge.

protocol.http.Response405WithoutAllowHeader

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Received 405 Response without Allow Header
  • סיבה אפשרית:
שרת הקצה העורפי משיב עם קוד סטטוס 405 Method Not Allowed ללא הכותרת Allow.
  • מפרט HTTP:

RFC 7231, סעיף 6.5.5: 405 Method Not Allowed וגם RFC 7231, סעיף 7.4.1: Allow

PLAYBOOK

protocol.http.ResponseWithBody

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Received {status_code} Response with message body
  • הסיבה האפשרית:

השגיאה הזו מתקבלת אם תגובת ה-HTTP משרת הקצה העורפי ל-Apigee Edge היא 204 No Content או 205 Reset Content אבל היא מכילה את גוף התשובה ו/או אחת או יותר מהכותרות הבאות:

  • Content-Length
  • Content-Encoding
  • Transfer-Encoding
  • מפרט HTTP:

RFC 7231, סעיף 6.3.5: 204 No Content וגם RFC 7231, סעיף 6.3.6: 205 Reset Content

PLAYBOOK

protocol.http.TooBigBody

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
Body buffer overflow
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם גודל המטען הייעודי (payload) שנשלח על ידי אפליקציית הלקוח כחלק מבקשה ל-HTTP אל Apigee Edge גדול מהמגבלה המותרת ב-Apigee Edge.
  • מגבלות:
מגבלות ב-Apigee Edge
PLAYBOOK

protocol.http.TooBigHeaders

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
response headers size exceeding {limit}
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם הגודל הכולל של כל כותרות התגובה שנשלחות על ידי שרת הקצה כחלק מתגובת ה-HTTP אל Apigee Edge גדול מהמגבלה המותרת ב-Apigee Edge.
  • מגבלות:
מגבלות ב-Apigee Edge
PLAYBOOK

protocol.http.TooBigLine

  • קוד מצב HTTP:
502 Bad Gateway
  • הודעת השגיאה:
response line size exceeding {limit}
  • הסיבה האפשרית:
השגיאה הזו מתקבלת אם הגודל של שורת התגובה שנשלח על ידי שרת הקצה העורפי כחלק מתגובת HTTP ל-Apigee Edge גדול מהמגבלה המותרת ב-Apigee Edge.
  • מגבלות:
מגבלות ב-Apigee Edge
PLAYBOOK

protocol.http.UnsupportedEncoding

  • קוד מצב HTTP:
415 Unsupported Media
  • הודעת השגיאה:
Unsupported Encoding "{encoding}"
  • הסיבה האפשרית:
השגיאה הזו מתרחשת אם הכותרת Content-Encoding שנשלחת על ידי שרת הקצה העורפי כחלק מתגובת ה-HTTP מכילה את הפורמט של הקידוד/מטען הייעודי שלא נתמך על ידי Apigee Edge.
  • מפרט HTTP:
RFC 7231, סעיף 6.5.13: 415 Unsupported Media Type
PLAYBOOK

security.util.*

security.util.KeyAliasNotFound

  • קוד מצב HTTP:
500 Internal Server Error
  • הודעת השגיאה:
KeyAlias {KeyAlias_name} is not found in Keystore {Keystore_Name}
  • הסיבה האפשרית:

השגיאה הזו מתקבלת אם לא נמצא ב-Keystore הספציפי את ה-KeyAlias הספציפי שמצוין ב-TargetEndpoint או ב-TargetServer.

תיקון

מוודאים שה-KeyAlias שצוין ב-TargetEndpoint או ב-TargetServer קיים והוא חלק ממאגר המפתחות הספציפי.

security.util.TrustStoreWithNoCertificates

  • קוד מצב HTTP:
500 Internal Server Error
  • הודעת השגיאה:
TrustStore {truststore_name} has no certificates
  • הסיבה האפשרית:

השגיאה הזו מתקבלת אם ה-Truststore הספציפי שיש אליו הפניה ב-TargetEndpoint או ב-TargetServer לא מכיל אישורים.

תיקון

אם רוצים לאמת את האישור של שרת הקצה העורפי ולהשתמש ב-Truststore ב-TargetEndpoint או ב-TargetServer, צריך לוודא ש-Truststore מכיל את האישורים החוקיים של שרת הקצה העורפי.