รหัสข้อผิดพลาดของ Gateway
รหัสข้อผิดพลาดทุกรหัสที่ endpoint /v1 ของ Gateway ส่งคืน พร้อมสถานะ HTTP การลองใหม่ช่วยได้หรือไม่ และวิธีแก้
รหัสอยู่ตรงไหน#
แต่ละ endpoint ตอบด้วยรูปแบบข้อผิดพลาดของโปรโตคอลตัวเอง SDK ทางการจึงอ่านได้
/v1/chat/completionsและ/v1/responses:{"error": {"message", "type", "param", "code"}}รหัสอยู่ในerror.code/v1/messagesและ/v1/messages/count_tokens:{"type": "error", "error": {"type", "message"}}รหัสคือข้อความ ยกเว้น 429 ซึ่งมีข้อความที่อ่านเข้าใจได้และมีรหัสอยู่ในerror.code/v1/modelsตอบในรูปแบบของไคลเอนต์ที่ถาม: รูปแบบ Anthropic เมื่อคำขอส่งanthropic-versionหรือx-api-keyนอกนั้นใช้รูปแบบ OpenAI
การปฏิเสธที่ผู้ให้บริการเขียนเอง (400, 413 หรือ 422 เกี่ยวกับเนื้อหาของคำขอ) จะส่งต่อด้วยถ้อยคำของผู้ให้บริการ และไม่มีรหัสของ Gateway
เฮดเดอร์การลองใหม่: Retry-After บอกจำนวนวินาทีที่ต้องรอ X-Should-Retry: false บอก SDK ของ OpenAI และ Anthropic ว่าไม่ต้องลองใหม่เลย
ปัญหาอยู่ที่ Gateway หรือไม่#
ได้รับข้อผิดพลาด 5xx หรือไม่มีการตอบกลับเลย? เปิดหน้าสถานะ Gateway (ภาษาอังกฤษ) ซึ่งตรวจจากเบราว์เซอร์ของคุณโดยไม่ต้องเข้าสู่ระบบว่า Gateway ที่เราโฮสต์พร้อมใช้งานหรือไม่ และบอกว่าควรทำอะไรกับผลแต่ละแบบ
รายการรหัส#
| รหัส | สถานะ | ลองใหม่ | ต้องทำอะไร |
|---|---|---|---|
application_key_required | 401 | ไม่ | ส่งคีย์เป็น Authorization: Bearer <key> (หรือ x-api-key ยกเว้นบน /v1/chat/completions) |
application_key_not_accepted | 401 | ไม่ | คีย์ถูกเพิกถอน หมดอายุ พิมพ์ผิด หรือใช้จากที่อยู่นอกรายการที่อนุญาต ตรวจสอบในรายการคีย์ หรือสร้างคีย์ใหม่ |
gateway_key_attempts_exceeded | 429 | หลัง Retry-After | มีคีย์ที่ไม่ผ่านส่งมาจากที่อยู่ของคุณมากเกินไป แก้คีย์ที่เครื่องมือส่ง แล้วรอ |
gateway_key_model_not_allowed | 403 | ไม่ | รายการโมเดลที่อนุญาตของคีย์ไม่มีโมเดลนี้ ใช้โมเดลในรายการหรือ auto หรือเปลี่ยนรายการที่อนุญาตของคีย์ |
server_application_required | 403 | ไม่ | คำขอมาจากเบราว์เซอร์ (เฮดเดอร์ Origin) หรือมี query string ที่ไม่คาดไว้ ให้เรียก Gateway จากเซิร์ฟเวอร์ CLI หรือสคริปต์ |
inference_not_admitted | 403 | ไม่ | เวิร์กสเปซนี้ใช้ Gateway ไม่ได้ในขณะนี้ หรือใช้โมเดลที่เลือกไม่ได้ ขอสิทธิ์ใช้งานได้ที่หน้า AI Gateway |
model_not_enabled | 403 | ไม่ | การตั้งค่าโมเดลของเวิร์กสเปซไม่รวมโมเดลนี้ ใช้โมเดลอื่นหรือ auto หรือขอให้เจ้าของหรือผู้ดูแลอนุญาต |
model_not_found | 404, 400 | ไม่ | ไม่รู้จักโมเดลนี้ หรือไม่มีโมเดลที่อนุญาตใน endpoint นี้ที่รองรับคำขอได้ ใช้ชื่อจาก GET /v1/models หรือ auto |
video_not_found | 404 | ไม่ | API key นี้ไม่ได้สร้างวิดีโอ id นี้ อ่านวิดีโอได้เฉพาะด้วย key ที่สร้างมันเท่านั้น |
invalid_model | 400 | ไม่ | ชื่อ agentlab/… ไม่ใช่โมเดล ใช้ auto หรือชื่อจาก GET /v1/models |
invalid_provider | 400 | ไม่ | provider.only มีชื่อที่ไม่ใช่ผู้ให้บริการ ไม่รวมโมเดลที่คุณระบุ หรือผู้ให้บริการในรายการไม่มีโมเดลใดที่รองรับคำขอได้ (error.param เป็น provider.only) แก้ไขรายการ ข้อความจะระบุผู้ให้บริการที่ใช้ได้ |
unsupported_parameter | 400 | ไม่ | คำขอมีฟิลด์ OpenAI ที่ Gateway ไม่รับ (error.param คือฟิลด์นั้น) ให้นำฟิลด์นั้นออก |
prompt_reference_invalid | 400 | ไม่ | ระบุพรอมต์ด้วย id หรือ slug ใน /v1/prompts/{prompt}/completions และต่อท้ายด้วย @<version> ได้ |
prompt_not_found | 404 | ไม่ | เวิร์กสเปซของคีย์ไม่มีพรอมต์หรือเวอร์ชันชื่อนี้ ตรวจสอบแท็บพรอมต์ของเวิร์กสเปซนั้น |
prompt_variables_mismatch | 400 | ไม่ | variables ต้องตรงกับตัวแปรของพรอมต์พอดี ข้อความจะบอกตัวที่ขาดและตัวที่พรอมต์ไม่ได้ใช้ |
prompt_variables_invalid | 400 | ไม่ | variables ต้องเป็นอ็อบเจ็กต์ที่ค่าทุกตัวเป็นสตริง |
prompt_messages_not_accepted | 400 | ไม่ | การเรียกพรอมต์ส่ง variables ไม่ใช่ messages เพราะพรอมต์เป็นผู้ถือข้อความ |
prompt_too_large | 400 | ไม่ | พรอมต์ที่เติมตัวแปรแล้วใหญ่เกินขนาดคำขอ ส่งค่าที่สั้นลง |
invalid_inference_request | 400 | ไม่ | เนื้อหาคำขอ Chat Completions ใช้ช่องหรือค่าที่ Gateway ไม่รับ ดูข้อมูลอ้างอิง API |
invalid_request | 400 | ไม่ | เนื้อหาคำขอ Responses ขอสถานะที่เก็บไว้ (previous_response_id, conversation, prompt) หรือเครื่องมือที่ถูกปฏิเสธ param ระบุช่องนั้น |
request_key_invalid | 400 | ไม่ | Idempotency-Key ต้องส่งไม่เกินหนึ่งครั้งและยาว 8 ถึง 128 ตัวอักษร |
request_key_already_used | 409 | ไม่ | Idempotency-Key นี้ถูกใช้ไปแล้ว ส่งคีย์ใหม่กับคำขอใหม่ |
routing_header_invalid | 400 | ไม่ | X-AgentLab-Routing ต้องเป็น auto พอดีและส่งครั้งเดียว |
invalid_metadata | 400 | ไม่ | บันทึกแท็กใน X-AgentLab-Metadata หรือ metadata ในเนื้อหาไม่ได้ ข้อความจะบอกว่าผิดกฎข้อใด ให้ส่งออบเจ็กต์ JSON หนึ่งตัวที่มีค่าสตริงไม่เกิน 16 ค่า คีย์ยาว 1 ถึง 64 ตัวอักษร (ตัวอักษร ตัวเลข _ . หรือ -) ค่ายาว 1 ถึง 512 ตัวอักษร ดูแท็ก |
json_required | 415 | ไม่ | ส่ง Content-Type: application/json |
request_too_large | 413 | ไม่ | เนื้อหาคำขอใหญ่เกินกว่าที่ endpoint รับ: 1 MiB สำหรับ Chat Completions การสร้างเสียงและรูปภาพ, 32 MiB สำหรับ Messages และ Responses, 26 MiB สำหรับการถอดเสียง (ไฟล์เสียงไม่เกิน 25 MiB) และ 64 MiB สำหรับการแก้ไขรูปภาพและวิดีโอ |
request_body_unreadable | 400 | ใช่ | เนื้อหาคำขอขาดก่อนถึงความยาวที่ประกาศไว้ หรือมาไม่ทันเวลา ส่งคำขออีกครั้ง |
gateway_guardrail_blocked | 400 | ไม่ | กฎป้องกันของเวิร์กสเปซพบเนื้อหาที่ต้องบล็อก (หมายเลขบัตร คีย์ API คำในรายการ …) ข้อความจะระบุชื่อการตรวจ ลบเนื้อหานั้น หรือขอให้ผู้ดูแลเวิร์กสเปซเปลี่ยนกฎป้องกันใน AI Gateway › เริ่มต้นใช้งาน |
inference_allowance_exceeded | 429 | ไม่ | ขีดจำกัดรายเดือน เพดานของแผนก หรือช่วงเวลาเลื่อนไม่เหลือที่ว่าง ข้อความจะระบุว่าเป็นขีดจำกัดใด เพิ่มขีดจำกัด หรือรอการรีเซ็ต ในแผน Free อาจเป็นคำขอหรือค่าใช้โมเดลที่รวมในแผน (gateway_plan_requests, gateway_plan_spend) ในแบบจ่ายตามใช้อาจเป็นยอดคงเหลือเครดิต (gateway_balance) เติมเครดิตได้ที่ AI Gateway › แผน แล้วคีย์เดิมใช้ได้ทันที |
gateway_rate_limited | 429 | หลัง Retry-After | คีย์หรือเวิร์กสเปซนี้ส่งคำขอหรือโทเค็นต่อนาทีเกินขีดจำกัดอัตรา หรือมีคำขอเสียง รูปภาพ และวิดีโอที่กำลังทำงานพร้อมกันเต็มจำนวนที่ Gateway รองรับ รอ หรือเพิ่มขีดจำกัด |
provider_rate_limited | 429 | หลัง Retry-After | ผู้ให้บริการโมเดลไม่ว่าง SDK จะรอแล้วลองใหม่เอง |
count_tokens_concurrency_exceeded | 429 | หลัง Retry-After | มีคำขอนับโทเค็นพร้อมกันมากเกินไป ลองใหม่หลังหนึ่งวินาที |
provider_overloaded | 529 | ได้ | ผู้ให้บริการโมเดลรับโหลดไม่ไหว ลองใหม่ในอีกสักครู่ หรือใช้ auto หรือโมเดลอื่น |
inference_failed | 502 | ได้ หนึ่งครั้ง | ผู้ให้บริการตอบไม่สำเร็จ ถ้ายังล้มเหลวต่อเนื่อง ให้เปิดคำขอนั้นใน AI Gateway › การใช้งาน |
settlement_pending | 503 | ไม่ | โมเดลตอบแล้วแต่ยังบันทึกการใช้งานไม่ได้ จึงยังไม่ส่งคำตอบให้ อย่าส่งซ้ำ ระบบจะปิดยอดเอง |
inference_unavailable | 503 | ได้ | Gateway เข้าถึงสิ่งที่ต้องใช้ในการตัดสินไม่ได้ ลองใหม่ในอีกสักครู่ |
gateway_unavailable | 503 | ได้ | เซิร์ฟเวอร์ Gateway กำลังเริ่มทำงานหรือโหลดการกำหนดค่าใหม่ ลองใหม่ในอีกสักครู่ |
gateway_not_configured | 503 | ไม่ | เซิร์ฟเวอร์นี้ไม่ได้กำหนดค่า Gateway ไว้ ถ้าเป็น Gateway ที่โฮสต์เอง ให้ตรวจการกำหนดค่าการดีพลอย |
transport_deadline_unavailable | 503 | ได้ | เซิร์ฟเวอร์ตั้งเวลาจำกัดของการเชื่อมต่อไม่ได้ ลองใหม่ |
ตารางนี้ถูกตรวจเทียบกับโค้ดของ Gateway ทุกครั้งที่บิลด์ ถ้า Gateway ส่งรหัสใดได้แต่ไม่มีแถวในตารางนี้ บิลด์จะล้มเหลว