כשבקשות API מבוצעות דרך Apigee Edge, הרכיבים Routers ו-Message Processors של Apigee Edge, או שרתי הקצה העורפי, יכולים להחזיר שגיאות לאפליקציות הלקוח.
שגיאות ממעבד ההודעות
מעבד ההודעות הוא רכיב הליבה של Apigee Edge שמבצע את העיבוד של כללי המדיניות ומתקשר עם השרתים בקצה העורפי. הפונקציה יכולה להחזיר שגיאות אם היא מזהה בעיות כמו:
בעיות בקישוריות לרשת, כשלים בלחיצת יד של TLS, חוסר זמינות של שרת עורפי,
חוסר תגובה במהלך תקשורת עם השרת העורפי
כשלים במהלך ביצוע המדיניות
כותרות HTTP לא תקינות, קידוד לא תקין, נתיב לא תקין, אי-עמידה במפרטי HTTP, חריגה ממגבלות המוצר וכו':
עם בקשת HTTP שנשלחת על ידי אפליקציות הלקוח
או
עם תגובת HTTP שנשלחה על ידי שרת הקצה העורפי
ועוד הרבה
דוגמה לשגיאה ממעבד ההודעות
מעבד ההודעות תמיד מחזיר קוד סטטוס HTTP ואחריו הודעת שגיאה, יחד עם קוד שגיאה בפורמט JSON, כמו שמוצג בהמשך:
מכילה את הודעת השגיאה שמתארת את הסיבה האפשרית לשגיאה
errorcode
קוד השגיאה (נקרא גם קוד תקלה) שמשויך לשגיאה
קטלוג שגיאות בזמן ריצה
בקטלוג השגיאות הזה מפורט כל המידע שצריך לדעת על קודי שגיאות בזמן ריצה (שגיאות שלא קשורות למדיניות) שמוחזרים מרכיב מעבד ההודעות של Apigee Edge. הוא כולל את הפרטים הבאים לגבי כל קוד שגיאה:
קוד מצב HTTP
הודעת שגיאה
סיבות אפשריות לשגיאה
כל המפרטים הרלוונטיים של HTTP ו/או מגבלות המוצר
מדריכים וסרטונים עם הוראות לאבחון הגורם לשגיאה ופתרונות יעילים שאפשר ליישם כדי לפתור את השגיאה בעצמכם (אם יש כאלה)
אפשר להשתמש בתיבת החיפוש שבהמשך כדי לסנן את הטבלה ולהציג את המידע שלמעלה
לגבי קוד שגיאה ספציפי. אפשר לחפש את קוד הסטטוס או כל תוכן בשדה כלשהו בטבלה.
searchרשת החיפוש
קוד שגיאה
תיאור
תיקון
flow.*
flow.APITimedOut
קוד מצב HTTP:
504 Gateway Timeout
הודעת שגיאה:
API timed out
סיבה אפשרית:
השגיאה הזו מתרחשת אם:
השרת העורפי לא מגיב בתוך פרק הזמן הקצוב לתפוגה שהוגדר על ידי המאפיין api.timeout עבור ה-API Proxy הספציפי.
הפעלת מדיניות נמשכת זמן רב בגלל פעולות שדורשות הרבה משאבי מחשוב, עומס גבוה או ביצועים נמוכים.
הערה: במדריך הזה מוסבר איך לפתור את בעיית קוד השגיאה messaging.adaptors.http.flow.GatewayTimeout, אבל אפשר להשתמש באותו מדריך כדי לפתור את בעיית קוד השגיאה flow.APITimedOut.
הודעת השגיאה והפורמט שלה יכולים להשתנות בהתאם להטמעה של שרת הקצה העורפי.
סיבה אפשרית:
השגיאה הזו מתרחשת אם שרת הקצה העורפי מגיב ל-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 במהלך
תקופת הזמן הקצובה לתפוגה של קלט/פלט שהוגדרה במעבד ההודעות.
השגיאה הזו מתרחשת אם אפליקציית הלקוח לא מעבירה את כותרת Content-Length כחלק מבקשות ה-HTTP POST ו-PUT שנשלחות אל Apigee Edge.
הערה: אי אפשר לתעד את הבקשות שנכשלות עם השגיאה הזו בכלי Trace, כי מעבד ההודעות מבצע את האימות הזה בשלב מוקדם מאוד, הרבה לפני עיבוד הבקשה והפעלת מדיניות כלשהי ב-API Proxy.
השגיאה הזו מתרחשת אם מעבד ההודעות של Apigee Edge לא מקבל את מטען הייעודי (payload) של הבקשה מאפליקציית הלקוח במהלך
תקופת הזמן הקצובה לתפוקת קלט/פלט שהוגדרה ברכיב מעבד ההודעות.
תיקון
מוודאים שאפליקציית הלקוח שולחת את מטען הייעודי (payload) של הבקשה במסגרת
זמן הקצוב לתפוקת קלט/פלט שהוגדר ברכיב Message Processor של Apigee Edge.
messaging.adaptors.http.flow.ServiceUnavailable
קוד מצב HTTP:
503 Service Unavailable
הודעת שגיאה:
The Service is temporarily unavailable
סיבה אפשרית:
השגיאה הזו מתרחשת באחד מהתרחישים הבאים:
התרגום השגוי של DNS של מארח השרת העורפי על ידי שרת הרשאות מותאם אישית הוביל לכתובות IP שגויות, וכתוצאה מכך לשגיאות בחיבור.
שגיאות של זמן קצוב לתפוגה של חיבור בגלל:
הגבלת חומת האש בשרת הקצה העורפי מונעת מ-Apigee Edge להתחבר לשרת הקצה העורפי.
בעיות בקישוריות לרשת בין Apigee Edge לבין שרת קצה עורפי.
המארח של שרת היעד שצוין בנקודת היעד שגוי או מכיל תווים לא רצויים (כמו רווח).
אם כתובת ה-IP הספציפית של הלקוח לא חסומה, אבל השגיאה הזו עדיין מופיעה, צריך לפנות אל התמיכה של Apigee Edge.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
קוד מצב HTTP:
500 Internal Server Error
הודעת שגיאה:
Bad Form Data
סיבה אפשרית:
השגיאה הזו מתרחשת רק אם מתקיימים כל התנאים הבאים:
בקשת ה-HTTP שנשלחת מהלקוח אל Apigee Edge
כוללת:
Content-Type: application/x-www-form-urlencoded,
וגם
נתוני טופס עם סימן האחוז (%), או סימן האחוז (%) שאחריו תווים הקסדצימליים לא חוקיים שאסורים לפי
טפסים – סעיף 17.13.4.1.
ה-API proxy ב-Apigee Edge קורא את הפרמטרים הספציפיים של הטופס שמכילים תווים שלא מורשים לשימוש באמצעות ExtractVariables או מדיניות AssignMessage בזרימת הבקשה.
השגיאה הזו מתרחשת אם כותרת HTTP ספציפית שאסור להכיל כפילויות ב-Apigee Edge מופיעה יותר מפעם אחת עם ערכים זהים או שונים כחלק מבקשת ה-HTTP שנשלחת מאפליקציית הלקוח אל Apigee Edge.
Header {header_name} contains invalid character {character}
סיבה אפשרית:
השגיאה הזו מתרחשת אם שם הכותרת שנשלח כחלק מבקשת ה-HTTP על ידי אפליקציית הלקוח אל Apigee Edge מכיל תווים לא תקינים, כמו סימן שוויון (=), פסיק (,), נקודה ופסיק (;), Tab, CRLF ותו שורה חדשה.
השגיאה הזו מתרחשת אם הנתיב בכתובת ה-URL של בקשת ה-HTTP שנשלחת מאפליקציית הלקוח אל Apigee Edge מכיל תווים שלא מותרים לפי המפרט RFC 3986, סעיף 3.3: נתיב.
מוודאים שהנתיב בכתובת ה-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.
השגיאה הזו מתרחשת אם כתובת ה-URL של הבקשה של השרת העורפי, שמיוצגת על ידי משתנה הזרימה target.url, מכילה נתיב שמתחיל בסימן שאלה (?) במקום בקו נטוי (/), וזה לא תקין.
השגיאה הזו מתרחשת אם כותרת HTTP ספציפית שאסור להכיל כפילויות ב-Apigee Edge מופיעה יותר מפעם אחת עם ערכים זהים או שונים כחלק מתגובת ה-HTTP שנשלחת משרת הקצה העורפי אל Apigee Edge.
Header {header_name} contains invalid character {character}
סיבה אפשרית:
השגיאה הזו מתרחשת אם שם הכותרת שנשלח על ידי שרת הקצה העורפי כחלק מתגובת ה-HTTP,
מכיל תווים לא תקינים כמו סימן שווה (=), פסיק (,), נקודה ופסיק (;), טאב,
CRLF ותו שורה חדשה.
Proxy refused to create tunnel with response status {status code}
סיבה אפשרית:
השגיאה הזו מתרחשת במהלך יצירת המנהרה בין Apigee Edge לבין שרת הקצה העורפי על ידי שרת ה-proxy, בגלל חומת אש, ACL (רשימת בקרת גישה), בעיות ב-DNS, זמינות של שרת הקצה העורפי וכו'.
הערה:קוד הסטטוס בהודעת השגיאה (faultstring) מציין את הסיבה העיקרית לבעיה.
השגיאה הזו מתרחשת אם תגובת ה-HTTP משרת הקצה העורפי אל Apigee Edge היא 204 No Content או 205 Reset Content, אבל היא מכילה את גוף התגובה ו/או אחת או יותר מהכותרות הבאות:
השגיאה הזו מתרחשת אם הגודל הכולל של כל כותרות התגובה שנשלחות על ידי שרת הקצה העורפי כחלק מתגובת ה-HTTP ל-Apigee Edge גדול מהמגבלה המותרת ב-Apigee Edge.
השגיאה הזו מתרחשת אם הכותרת Content-Encoding שנשלחת על ידי שרת הקצה העורפי כחלק מתגובת ה-HTTP מכילה את פורמט הקידוד או המטען הייעודי (payload) שלא
נתמך על ידי Apigee Edge.
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
סיבה אפשרית:
השגיאה הזו מתרחשת אם מאגר האישורים הספציפי שאליו יש הפניה ב-TargetEndpoint או ב-TargetServer לא מכיל אישורים.
תיקון
אם רוצים לאמת את האישור של שרת הקצה העורפי ולהשתמש ב-Truststore ב-TargetEndpoint או ב-TargetServer, צריך לוודא ש-Truststore מכיל את האישורים התקפים של שרת הקצה העורפי.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-08-08 (שעון UTC)."],[],[],null,[]]