כשבקשות 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.
הודעת השגיאה והפורמט שלה עשויים להשתנות בהתאם להטמעה של שרת הקצה העורפי.
סיבה אפשרית:
השגיאה הזו מתרחשת אם שרת הבק-אנד מגיב עם קוד סטטוס 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 במהלך
הזמן הקצוב לתפוגה של קלט/פלט שהוגדר במעבד ההודעות.
השגיאה הזו מתרחשת אם כותרת 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,
and
נתוני טופס עם סימן האחוז (%), או סימן האחוז (%) שאחריו תווים הקסדצימליים לא תקינים שאסורים לפי
טפסים – סעיף 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: נתיב.
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.
השגיאה הזו מתרחשת אם הכותרת Content-Encoding שנשלחת על ידי הלקוח כחלק מתגובת ה-HTTP מכילה קידוד או פורמט מטען ייעודי (payload) שלא נתמכים על ידי
Apigee Edge.
השגיאה הזו מתרחשת אם כתובת ה-URL של הבקשה של השרת העורפי, שמיוצגת על ידי משתנה הזרימה target.url, מכילה נתיב שמתחיל בסימן שאלה (?) במקום בקו נטוי (/), וזה לא תקין.
השגיאה הזו מתרחשת אם כותרת HTTP ספציפית שאסור להכיל כפילויות ב-Apigee Edge מופיעה יותר מפעם אחת עם ערכים זהים או שונים כחלק מתגובת ה-HTTP שנשלחת משרת הקצה העורפי אל Apigee Edge.
Header {header_name} contains invalid character {character}
סיבה אפשרית:
השגיאה הזו מתרחשת אם שם הכותרת שנשלח על ידי שרת הקצה העורפי כחלק מתגובת ה-HTTP, מכיל תווים לא תקינים כמו שווה (=), פסיק (,), נקודה ופסיק (;), Tab, 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}
סיבה אפשרית:
השגיאה הזו מתרחשת אם ה-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 מכיל את האישורים התקינים של שרת הקצה העורפי.
[[["התוכן קל להבנה","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"]],["עדכון אחרון: 2026-10-12 (שעון UTC)."],[],[]]