แคตตาล็อกข้อผิดพลาดรันไทม์

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

ข้อผิดพลาดใน Apigee Edge

เมื่อส่งคำขอ API ผ่าน Apigee Edge, เราเตอร์และ Message Processor ของคอมโพเนนต์ Apigee Edge หรือแบ็กเอนด์ เซิร์ฟเวอร์จะส่งข้อผิดพลาดไปยังแอปพลิเคชันไคลเอ็นต์ได้

ข้อผิดพลาดจากโปรแกรมประมวลผลข้อความ

โปรแกรมประมวลผลข้อความคือองค์ประกอบหลักของ Apigee Edge ที่จะประมวลผลนโยบายและ โต้ตอบกับเซิร์ฟเวอร์แบ็กเอนด์ แต่อาจแสดงผลข้อผิดพลาดหากตรวจพบปัญหาใดๆ เช่น

  • ปัญหาการเชื่อมต่อเครือข่าย, ความล้มเหลวในแฮนด์เชค TLS, ความไม่พร้อมใช้งานของเซิร์ฟเวอร์แบ็กเอนด์ ขาดการตอบสนองระหว่างการสื่อสารกับเซิร์ฟเวอร์แบ็กเอนด์
  • ความล้มเหลวระหว่างการบังคับใช้นโยบาย
  • ส่วนหัว HTTP, การเข้ารหัส, เส้นทาง, ไม่เป็นไปตามข้อกำหนดของ HTTP, เกิน ขีดจำกัดผลิตภัณฑ์ ฯลฯ:
    • คำขอ HTTP ที่ส่งโดยแอปพลิเคชันไคลเอ็นต์
    • หรือ

    • ที่มีการตอบกลับ HTTP ที่ส่งโดยเซิร์ฟเวอร์แบ็กเอนด์
  • และอีกมากมาย

ตัวอย่างข้อผิดพลาดจาก Message Processor

ตัวประมวลผลข้อความจะแสดงรหัสสถานะ 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 ที่เกี่ยวข้องและ/หรือขีดจำกัดของผลิตภัณฑ์
  • Playbook และวิดีโอที่มีวิธีการวินิจฉัยสาเหตุของข้อผิดพลาด ที่มีประสิทธิภาพที่คุณสามารถนำมาใช้เพื่อแก้ไขข้อผิดพลาดด้วยตนเอง (หากมี)
  • แก้ไขที่คุณสามารถใช้เพื่อแก้ไขข้อผิดพลาดด้วยตนเอง

หมวดหมู่รหัสข้อผิดพลาดต่อไปนี้ครอบคลุม

ใช้ช่องค้นหาด้านล่างเพื่อกรองตารางให้แสดงข้อมูลข้างต้น เพื่อดูรหัสข้อผิดพลาด คุณสามารถค้นหารหัสสถานะหรือเนื้อหาในช่องใดก็ได้ ในตาราง

รหัสข้อผิดพลาด คำอธิบาย แก้ไข

flow.*

flow.APITimedOut

  • รหัสสถานะ HTTP:
504 Gateway Timeout
  • ข้อความแสดงข้อผิดพลาด:
API timed out
  • สาเหตุที่เป็นไปได้มีดังนี้

ข้อผิดพลาดนี้จะเกิดขึ้นในกรณีต่อไปนี้

  • เซิร์ฟเวอร์แบ็กเอนด์ไม่ตอบกลับภายในระยะหมดเวลาที่กำหนดค่าไว้ ตามที่พัก api.timeout สำหรับพร็อกซี API ที่ระบุ
  • นโยบายใช้เวลานานเนื่องจากมีการดำเนินการเชิงคำนวณอย่างหนัก หรือประสิทธิภาพไม่ดี

หมายเหตุ: Playbook นี้แสดงวิธีการแก้ปัญหารหัสข้อผิดพลาด messaging.adaptors.http.flow.GatewayTimeout; แต่คุณสามารถใช้ Playbook เดียวกันนี้เพื่อแก้ปัญหารหัสข้อผิดพลาด 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. พร็อกซี API ที่ระบุได้แก่
    1. ไม่ได้กำหนดค่าไว้ให้ยอมรับคำขอบน โฮสต์เสมือน
    2. ไม่ได้กำหนดค่าให้ยอมรับคำขอในเส้นทางเฉพาะ ที่ใช้ในคำขอ
    3. ไม่ได้ติดตั้งใช้งานในสภาพแวดล้อมเฉพาะเจาะจงที่คุณ กำลังพยายามสร้างคำขอ API
    4. ไม่ได้ติดตั้งใช้งานในตัวประมวลผลข้อความอย่างน้อย 1 ตัว
  2. สภาพแวดล้อมเฉพาะที่คุณพยายามสร้าง ระบบไม่โหลดคำขอ API ในตัวประมวลผลข้อความอย่างน้อย 1 รายการ
Playbook
ข้อผิดพลาดนี้อาจเกิดขึ้นหากโฮสต์เสมือนหลายรายการมีโฮสต์เดียวกัน ชื่อแทนและหมายเลขพอร์ต Playbook

messaging.adaptors.http.flow.DecompressionFailureAtRequest

  • รหัสสถานะ HTTP:
400 Bad Request
  • ข้อความแสดงข้อผิดพลาด:
Decompression failure at request
  • สาเหตุที่เป็นไปได้มีดังนี้

ข้อผิดพลาดนี้จะเกิดขึ้นเฉพาะในกรณีที่

  • การเข้ารหัสที่ระบุในส่วนหัวของคำขอ HTTP Content-Encoding ถูกต้องและ รองรับโดย Apigee Edge
  • แต่

  • รูปแบบเพย์โหลดที่ไคลเอ็นต์ส่งโดยเป็นส่วนหนึ่งของ 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

Playbook

วิดีโอ

  • ข้อความแสดงข้อผิดพลาด:
ข้อความแสดงข้อผิดพลาดและรูปแบบอาจแตกต่างกันไปตามเซิร์ฟเวอร์แบ็กเอนด์ การใช้งานของคุณ
  • สาเหตุที่เป็นไปได้มีดังนี้
ข้อผิดพลาดนี้เกิดขึ้นหากเซิร์ฟเวอร์แบ็กเอนด์ตอบสนองโดยมีสถานะ รหัส 503 ไปยัง Apigee Edge
  • รหัสสถานะ HTTP:
504 Playbook
  • ข้อความแสดงข้อผิดพลาด:
ข้อความแสดงข้อผิดพลาดและรูปแบบอาจแตกต่างกันไปตามเซิร์ฟเวอร์แบ็กเอนด์ การใช้งานของคุณ
  • สาเหตุที่เป็นไปได้มีดังนี้
ข้อผิดพลาดนี้เกิดขึ้นหากเซิร์ฟเวอร์แบ็กเอนด์ตอบสนองโดยมีสถานะ รหัส 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 Message Processor ภายใน ระยะหมดเวลา I/O ที่กำหนดค่าไว้ใน Message Processor
Playbook

messaging.adaptors.http.flow.LengthRequired

  • รหัสสถานะ HTTP:
411 Length Required
  • ข้อความแสดงข้อผิดพลาด:
'Content-Length' is missing
  • สาเหตุที่เป็นไปได้มีดังนี้

ข้อผิดพลาดนี้เกิดขึ้นหากไม่มีการส่งผ่านส่วนหัว Content-Length แอปพลิเคชันไคลเอ็นต์ให้เป็นส่วนหนึ่งของ HTTP POST และ PUT คำขอที่ส่งไปยัง Apigee Edge

หมายเหตุ: คำขอที่ดำเนินการไม่สำเร็จ ไม่สามารถบันทึกข้อผิดพลาดได้ในเครื่องมือการติดตาม เนื่องจากตัวประมวลผลข้อความ การตรวจสอบความถูกต้องนี้ในช่วงแรก ก่อนที่จะประมวลผลคำขอและ บังคับใช้นโยบายในพร็อกซี API

  • ข้อกำหนดของ HTTP:
RFC ส่วนที่ 3.3.2: ความยาวของเนื้อหา

แก้ไข

โปรดทำตามขั้นตอนต่อไปนี้เพื่อแก้ไขข้อผิดพลาดนี้

  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

วิดีโอ

ข้อผิดพลาดนี้อาจเกิดขึ้นได้เช่นกันหากมีการกําหนดค่าการตรวจสอบประสิทธิภาพการทํางานเพื่อตรวจสอบประสิทธิภาพการทํางาน การตรวจสอบเซิร์ฟเวอร์เป้าหมายล้มเหลว

Playbook

วิดีโอ

messaging.adaptors.http.flow.RequestTimeOut

  • รหัสสถานะ HTTP:
408 Request Timeout
  • ข้อความแสดงข้อผิดพลาด:
Request timed out
  • สาเหตุที่เป็นไปได้มีดังนี้
ข้อผิดพลาดนี้จะเกิดขึ้นหาก Apigee Edge Message Processor ไม่ได้รับ เพย์โหลดคำขอจากแอปพลิเคชันไคลเอ็นต์สำหรับ ระยะหมดเวลา I/O ที่กำหนดค่าไว้ในคอมโพเนนต์ Message Processor

แก้ไข

ตรวจสอบว่าแอปพลิเคชันไคลเอ็นต์ส่งเปย์โหลดคำขอภายใน ระยะหมดเวลา 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. โฮสต์ของเซิร์ฟเวอร์เป้าหมายที่ระบุในปลายทางเป้าหมายคือ ไม่ถูกต้องหรือมีอักขระที่ไม่ต้องการ (เช่น การเว้นวรรค)

Playbook

DNS ล้มเหลว:

วิดีโอ

การเชื่อมต่อเครือข่าย:

วิดีโอ

ข้อผิดพลาดนี้ยังเกิดขึ้นได้หากเซิร์ฟเวอร์แบ็กเอนด์ปิด ขณะที่ตัวประมวลผลข้อความยังคงส่งเปย์โหลดคำขอไปยัง เซิร์ฟเวอร์แบ็กเอนด์ Playbook

messaging.adaptors.http.flow.SslHandshakeFailed

  • รหัสสถานะ HTTP:
503 Service Unavailable
  • ข้อความแสดงข้อผิดพลาด:
SSL Handshake failed {error_message}
  • สาเหตุที่เป็นไปได้มีดังนี้

ข้อผิดพลาดนี้เกิดขึ้นระหว่างกระบวนการแฮนด์เชค SSL ระหว่าง Apigee Edge ตัวประมวลผลข้อความและเซิร์ฟเวอร์แบ็กเอนด์ในกรณีต่อไปนี้

  1. Truststore ของ Message Processor ของ 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. กำหนดค่าระยะหมดเวลาตลอดอายุการใช้งานอย่างไม่ถูกต้องใน Apigee และ เซิร์ฟเวอร์แบ็กเอนด์
Playbook

messaging.runtime.*

messaging.runtime.RouteFailed

  • รหัสสถานะ HTTP:
500 Internal Server Error
  • ข้อความแสดงข้อผิดพลาด:
Unable to route the message to a TargetEndpoint
  • สาเหตุที่เป็นไปได้มีดังนี้

ข้อผิดพลาดนี้เกิดขึ้นหาก Apigee Edge ไม่สามารถกำหนดเส้นทางคำขอไปยัง ปลายทางเป้าหมายเนื่องจากเหตุผลต่อไปนี้

  • ไม่มีเงื่อนไขของกฎเส้นทาง (<RouteRule>) ที่ ตรงกับคำขอในพร็อกซี
  • และ

  • ไม่มีกฎเส้นทางเริ่มต้นที่กำหนดไว้ใน ProxyEndpoint (เช่น <RouteRule> โดยไม่มีเงื่อนไข)

แก้ไข

หากต้องการแก้ไขข้อผิดพลาดดังกล่าว ให้ทำตามวิธีการต่อไปนี้

  1. ตรวจสอบกฎเส้นทางที่กำหนดไว้ใน ProxyEndpoint และแก้ไขเพื่อให้แน่ใจว่า มีเงื่อนไขของกฎเส้นทางอย่างน้อย 1 ข้อที่ตรงกับคำขอของคุณ
  2. คุณควรตั้งกฎเส้นทางเริ่มต้นโดยไม่มีเงื่อนไข เมื่อมี RouteRules หลายข้อ
  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 จะอ่านแบบฟอร์มเฉพาะ ซึ่งมีอักขระที่ไม่อนุญาตให้ใช้ ดึงข้อมูลตัวแปรหรือนโยบาย AssignMessage ในขั้นตอนคำขอ
Playbook

protocol.http.DuplicateHeader

  • รหัสสถานะ HTTP:
400 Bad Request
  • ข้อความแสดงข้อผิดพลาด:
Duplicate Header "{header_name}"
  • สาเหตุที่เป็นไปได้มีดังนี้
ข้อผิดพลาดนี้เกิดขึ้นหากมีส่วนหัว HTTP ที่เฉพาะเจาะจงที่ไม่ได้รับอนุญาตให้ซ้ำกัน ใน Apigee Edge จะปรากฏมากกว่า 1 ครั้งโดยมีค่าเดียวกันหรือแตกต่างกันเป็นส่วนหนึ่งของ คำขอ 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
  • สาเหตุที่เป็นไปได้มีดังนี้
ข้อผิดพลาดนี้เกิดขึ้นหากขนาดเพย์โหลดที่ส่งโดยแอปพลิเคชันไคลเอ็นต์เป็นส่วนหนึ่งของ คำขอ 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 ช่องส่วนหัวของคำขอใหญ่เกินไป
  • ข้อจำกัด
ขีดจำกัด 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 ประเภทสื่อที่ไม่รองรับ
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 จะปรากฏมากกว่า 1 ครั้งโดยมีค่าเดียวกันหรือแตกต่างกันเป็นส่วนหนึ่งของ การตอบกลับ 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 มีอักขระที่ไม่ถูกต้อง เช่น เท่ากับ (=), คอมมา (,), เซมิโคลอน (;), แท็บ 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 กับ เซิร์ฟเวอร์แบ็กเอนด์โดยพร็อกซีเซิร์ฟเวอร์เนื่องจากไฟร์วอลล์, ACL (รายการควบคุมการเข้าถึง), DNS ปัญหา ความพร้อมของความพร้อมใช้งานของเซิร์ฟเวอร์แบ็กเอนด์ ฯลฯ

หมายเหตุ: รหัสสถานะในข้อความแสดงข้อผิดพลาด (faultstring) ระบุสาเหตุระดับสูงของปัญหา

Playbook

protocol.http.Response306Reserved

  • รหัสสถานะ HTTP:
502 Bad Gateway
  • ข้อความแสดงข้อผิดพลาด:
Response Status code 306 is reserved, so can't be used.
  • สาเหตุที่เป็นไปได้มีดังนี้

ข้อผิดพลาดนี้เกิดขึ้นหากเซิร์ฟเวอร์แบ็กเอนด์ตอบกลับด้วย รหัสสถานะ 306 ไปยัง Apigee Edge

รหัสสถานะ 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 ไม่อนุญาตเมธอด และ RFC 7231 ส่วนที่ 7.4.1: อนุญาต

Playbook

protocol.http.ResponseWithBody

  • รหัสสถานะ HTTP:
502 Bad Gateway
  • ข้อความแสดงข้อผิดพลาด:
Received {status_code} Response with message body
  • สาเหตุที่เป็นไปได้มีดังนี้

ข้อผิดพลาดนี้เกิดขึ้นหากการตอบสนอง HTTP จากเซิร์ฟเวอร์แบ็กเอนด์ไปยัง Apigee Edge คือ 204 No Content หรือ 205 Reset Content แต่ประกอบด้วย เนื้อหาการตอบกลับและ/หรือส่วนหัวต่อไปนี้อย่างน้อย 1 รายการ

  • Content-Length
  • Content-Encoding
  • Transfer-Encoding
  • ข้อกำหนดของ HTTP:

RFC 7231 ส่วน 6.3.5: 204 ไม่มีเนื้อหา และ RFC 7231, ส่วน 6.3.6: 205 รีเซ็ตเนื้อหา

Playbook

protocol.http.TooBigBody

  • รหัสสถานะ HTTP:
502 Bad Gateway
  • ข้อความแสดงข้อผิดพลาด:
Body buffer overflow
  • สาเหตุที่เป็นไปได้มีดังนี้
ข้อผิดพลาดนี้เกิดขึ้นหากขนาดเพย์โหลดที่ส่งโดยแอปพลิเคชันไคลเอ็นต์เป็นส่วนหนึ่งของ คำขอ 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 ประเภทสื่อที่ไม่รองรับ
Playbook

security.util.*

security.util.KeyAliasNotFound

  • รหัสสถานะ HTTP:
500 Internal Server Error
  • ข้อความแสดงข้อผิดพลาด:
KeyAlias {KeyAlias_name} is not found in Keystore {Keystore_Name}
  • สาเหตุที่เป็นไปได้มีดังนี้

ข้อผิดพลาดนี้เกิดขึ้นหาก 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 มีใบรับรองที่ถูกต้องของเซิร์ฟเวอร์แบ็กเอนด์