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

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

שגיאות ב-Apigee Edge

כשבקשות API מבוצעות דרך Apigee Edge, הרכיבים Routers ו-Message Processors של 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 קוד השגיאה (נקרא גם קוד תקלה) שמשויך לשגיאה

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

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

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

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

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

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

flow.*

flow.APITimedOut

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

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

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

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

מדריך

flow.SharedFlowNotFound

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

השגיאה הזו מתרחשת אם רצף הפעולות הספציפי ששותף:

  • לא קיים
  • או

  • קיים אבל לא נפרס
מדריך

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. ה-API Proxy הספציפי הוא:
    1. לא מוגדר לקבל בקשות במארח הווירטואלי הספציפי
    2. לא מוגדר לקבל בקשות בנתיב הספציפי שנעשה בו שימוש בבקשה
    3. לא נפרס בסביבה הספציפית שבה אתם מנסים לשלוח את בקשות ה-API
    4. לא נפרס במעבד הודעות אחד או יותר
  2. הסביבה הספציפית שבה אתם מנסים לשלוח בקשות API לא נטענת באחד או יותר ממעבדי ההודעות
מדריך
השגיאה הזו יכולה להתרחש גם אם לכמה מארחים וירטואליים יש אותו שם מארח וירטואלי ומספר יציאה. מדריך

messaging.adaptors.http.flow.DecompressionFailureAtRequest

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

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

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

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

messaging.adaptors.http.flow.DecompressionFailureAtResponse

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

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

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

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

messaging.adaptors.http.flow.ErrorResponseCode

  • קוד סטטוס של HTTP‏:
500

מדריך

סרטון

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

מדריך

סרטון

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

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

messaging.adaptors.http.flow.GatewayTimeout

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

messaging.adaptors.http.flow.LengthRequired

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

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

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

  • מפרט HTTP:
RFC Section 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. גם אם מעבירים מטען ייעודי (payload) ריק עם בקשות 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 שגוי או מכיל תווים לא רצויים (כמו רווח).

מדריך

סרטון

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

מדריך

סרטון

messaging.adaptors.http.flow.RequestTimeOut

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

תיקון

מוודאים שאפליקציית הלקוח שולחת את מטען הייעודי (payload) של הבקשה במסגרת זמן הקצוב לתפוגה של קלט/פלט שהוגדר ברכיב 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. המארח של שרת היעד שצוין בנקודת קצה היעד שגוי או מכיל תווים לא רצויים (כמו רווח).

מדריך

כשל ב-DNS:

סרטון

חיבור לרשת:

סרטון

השגיאה הזו יכולה להתרחש גם אם שרת בק-אנד סוגר את החיבור לפני הזמן, בזמן שמעבד בקשות עדיין שולח את מטען ייעודי (payload) הבקשה לשרת בק-אנד. מדריך

messaging.adaptors.http.flow.SslHandshakeFailed

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

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

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

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

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

מדריך

סרטון

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 ובשרת הקצה העורפי שגויה.
מדריך

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. מומלץ להגדיר כלל מסלול ברירת מחדל ללא תנאי אם יש לכם כמה כללי מסלול.
  3. חשוב לוודא שכלל ברירת המחדל של המסלול מוגדר תמיד אחרון ברשימת המסלולים המותנים, כי ההערכה של הכללים מתבצעת מלמעלה למטה ב-ProxyEndpoint.

מידע נוסף על הגדרת <RouteRule> תנאים ב-ProxyEndpoint זמין במאמר Conditional Targets.

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, and
    • נתוני טופס עם סימן האחוז (%), או סימן האחוז (%) שאחריו תווים הקסדצימליים לא תקינים שאסורים לפי טפסים – סעיף 17.13.4.1.
  2. ה-API proxy ב-Apigee Edge קורא את הפרמטרים הספציפיים של הטופס שמכילים תווים שלא מורשים לשימוש באמצעות מדיניות ExtractVariables או AssignMessage בזרימת הבקשה.
מדריך

protocol.http.DuplicateHeader

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

protocol.http.EmptyHeaderName

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

תיקון

צריך לוודא שבקשת ה-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, section 3.2: Header Fields and RFC 7230, section 3.2.6: Field Value Components

תיקון

מוודאים שבקשת ה-HTTP של הלקוח שנשלחת אל Apigee Edge לא מכילה תווים שאינם ASCII בשמות הכותרות, בהתאם ל- RFC 7230, section 3.2.6: Field Value Components.

protocol.http.HeaderWithInvalidChar

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

RFC 7230, section 3.2: Header Fields and RFC 7230, section 3.2.6: Field Value Components

תיקון

מוודאים שבקשת ה-HTTP שנשלחת מאפליקציית הלקוח אל Apigee Edge לא מכילה תווים לא תקינים בשמות הכותרות, בהתאם ל- RFC 7230, section 3.2.6: Field Value Components

protocol.http.InvalidPath

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

RFC 3986, section 3: Syntax Components and RFC 3986, section 3.3: Path

תיקון

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

protocol.http.MessageReadError

  • קוד סטטוס של HTTP‏:
502 Bad Gateway
  • הודעת שגיאה:
Unexpected I/O after message headers have been read.
  • סיבה אפשרית:
השגיאה הנדירה הזו מתרחשת כש-MP מקבל קלט/פלט בערוץ כשהוא לא מצפה לכך. ה-MP קורא בקשה, קרא את כל הכותרות ומוגדר לקרוא את מטען הבקשה. ואז הוא נתקל באירוע קלט/פלט שנראה שמתייחס לאותן כותרות.

תיקון

כדי לקבל מידע נוסף על מה שקורה, מאתרים את הודעת היומן.

logger.atSevere().log(
    "Unexpected I/O after message headers have been read. Channel diagnostics=%s."
        + " HeartBeat=%s",
    input.client().getDiagnostic(), message.getHeaders().isHeartBeat());
                

protocol.http.TooBigBody

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

protocol.http.TooBigHeaders

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

protocol.http.TooBigLine

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

protocol.http.UnsupportedEncoding

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

protocol.http.* - Caused by target

protocol.http.BadPath

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

RFC 3986, section 3: Syntax Components and RFC 3986, section 3.3: Path

מדריך

protocol.http.DuplicateHeader

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

protocol.http.EmptyHeaderName

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

תיקון

מוודאים שתגובת ה-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, section 3: Syntax Components and RFC 3986, section 3.3: Path

מדריך

protocol.http.HeaderNameWithNonAsciiChar

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

RFC 7230, section 3.2: Header Fields and RFC 7230, section 3.2.6: Field Value Components

תיקון

מוודאים שתגובת ה-HTTP של שרת הקצה העורפי שנשלחת אל Apigee Edge לא מכילה תווים שהם לא תווי ASCII בשמות הכותרות, בהתאם ל RFC 7230, section 3.2.6: Field Value Components.

protocol.http.HeaderWithInvalidChar

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

RFC 7230, section 3.2: Header Fields and RFC 7230, section 3.2.6: Field Value Components

תיקון

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

protocol.http.ProxyTunnelCreationFailed

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

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

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

מדריך

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, section 6.3.5: 306 Reserved

תיקון

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

protocol.http.Response405WithoutAllowHeader

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

RFC 7231, section 6.5.5: 405 Method Not Allowed and RFC 7231, section 7.4.1: Allow

מדריך

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, section 6.3.5: 204 No Content and RFC 7231, section 6.3.6: 205 Reset Content

מדריך

protocol.http.TooBigBody

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

protocol.http.TooBigHeaders

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

protocol.http.TooBigLine

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

protocol.http.UnsupportedEncoding

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

security.util.*

security.util.KeyAliasNotFound

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

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

תיקון

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

security.util.TrustStoreWithNoCertificates

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

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

תיקון

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