ถอดรหัสข้อผิดพลาด API#
การปฏิเสธทุกครั้งตอบ JSON error พร้อม code ระบบบังคับใช้การปฏิเสธ ก่อน reservation ดังนั้นการเรียกที่ถูกปฏิเสธไม่คิดเงินกระเป๋าเงินของโปรเจกต์
| Error | สาเหตุ | วิธีแก้ |
|---|---|---|
401 invalid_api_key |
คีย์หาย พิมพ์ผิด หรือถูกเพิกถอน | ตรวจ header Authorization: Bearer …; หากถูกเพิกถอน ให้หมุนเวียนหรือสร้างคีย์ใหม่ |
402 insufficient_budget |
กระเป๋าเงินโปรเจกต์ยังไม่มีเงินหรือถูกถือไว้ทั้งหมด | เติมเงิน; reservation ที่ถือไว้จะปล่อยเมื่อ settlement |
403 key_unbound |
คีย์เก่าที่ออกก่อนระบบผูกคีย์กับโปรเจกต์ | สร้างคีย์ใหม่ที่ผูกกับโปรเจกต์; คอนโซลแสดงคีย์เหล่านี้เป็น Needs reissue |
403 project_mismatch |
project selector ต่างจากโปรเจกต์ที่คีย์ผูกไว้ | เอา selector ออก หรือระบุโปรเจกต์ที่ผูกไว้ให้ตรง |
403 product_not_assigned |
โมเดลเผยแพร่แล้วแต่ยังไม่กำหนดให้โปรเจกต์ของคีย์ | ให้ Owner/Administrator กำหนด version ที่แน่นอนในแท็บ Products ของโปรเจกต์ |
403 key_scope |
โมเดลใช้ได้แต่ไม่อยู่ใน resource list ของคีย์ | ใช้โมเดลในรายการคีย์ หรือสร้างคีย์ที่มี Allowed resources กว้างขึ้น |
403 denied |
ไม่มี consumption right: ไม่มี project grant (หรือ team grant สำหรับคีย์) | ขอ Owner/Administrator ให้ Project Consumer grant ในแท็บ Members ของโปรเจกต์ |
404 model_not_found |
เดา id, โมเดลของโปรเจกต์อื่น, draft หรือ deployment ถูก suspend | แสดงสิ่งที่คีย์เรียกได้ด้วย GET /v1/models |
404 not_found |
โปรเจกต์หรือ resource อยู่นอกองค์กร | คีย์และเซสชันเข้าถึงได้เฉพาะองค์กรของตนโดยออกแบบ |
409 revision_not_active |
เรียก sandbox ด้วย revision ที่ไม่ใช่ revision ที่ deploy | เปิดใช้งาน revision ใน Studio ของ sandbox หรือเรียกโดยไม่ระบุ revision |
422 project_required |
เรียก Playground โดยไม่ได้เลือก Project that pays | เลือกโปรเจกต์ที่เป็นผู้จ่ายใน Playground |
422 unsupported_parameter |
request field อยู่นอกชุดที่รับได้ | เอาฟิลด์ออก; ฟิลด์ที่ไม่รู้จักถูกปฏิเสธ ไม่ถูกทิ้ง จึงไม่ถูกคิดเงินสำหรับ limit ที่ไม่ถูกใช้ |
422 resource_not_eligible |
resource list ของคีย์ระบุสิ่งที่โปรเจกต์เรียกไม่ได้ | เลือกจาก resource ที่ใช้ได้เมื่อสร้างคีย์ |
422 sandbox_contract |
เรียก sandbox ที่ไม่ใช่ chat contract ผ่าน chat/completions | ใช้ POST /v1/sandbox/{id}/invoke สำหรับ rich contracts |
429 |
คำขอมากเกินไป — admission จำกัด 30 ต่อนาทีต่อผู้เรียกในองค์กร และการป้องกัน source/global อาจตอบ 429 | back off และปฏิบัติตาม Retry-After; สร้างคีย์ใหม่ให้ผู้เรียกเดิมไม่รีเซ็ตจำนวน admission |
503 products_unavailable |
ไม่มีผลิตภัณฑ์ที่เรียกได้อยู่หลัง id ที่ขอ | ตรวจสถานะ deployment หรือเลือกโมเดลที่กำหนดอื่น |
อาการในคอนโซล#
หน้าแสดงสถานะ “NoAccess” หรือ denied Go backend เป็น authority ไม่ใช่ UI เซิร์ฟเวอร์ปฏิเสธแม้คุณเข้าถึงหน้าได้ ตรวจบทบาท: หน้าที่เปลี่ยนแปลงข้อมูลส่วนใหญ่ต้องเป็น Owner หรือ Administrator; Financial audit ต้องใช้สิทธิ์ดูแล; การเสนอ deployment ต้องเป็น Owner
ตัวควบคุมที่คาดหวังหายไป client ซ่อนตัวควบคุมที่คุณใช้ไม่ได้ แต่เซิร์ฟเวอร์บังคับใช้เงื่อนไขอยู่ดี การไม่มี Propose deployment, New policy หรือ Invite people หมายถึงบทบาทของคุณไม่ผ่าน ไม่ใช่ rendering bug
ตัวเลือก Playground ว่าง อาจยังไม่ได้เลือก Project that pays หรือโปรเจกต์ที่เลือกยังไม่มีสิ่งที่กำหนดไว้ ให้ Owner/Administrator กำหนดผลิตภัณฑ์ในแท็บ Products และให้สิทธิ์ใน Members
“Not bound to a Project — Refused on every call; create a new key.” คือคีย์เก่า (403 key_unbound) หมุนเวียนหรือซ่อมไม่ได้ สร้างคีย์ใหม่แล้วเพิกถอนคีย์เก่า ดู คีย์ API
สตรีมหยุดโดยไม่มี [DONE] คำตอบถูกขัดจังหวะ ไม่เสร็จสมบูรณ์ ให้ถือเป็นผลลัพธ์ไม่แน่ชัด การเรียกถือวงเงินจน usage ที่ยืนยันตัดบัญชี และปรากฏใน การใช้งานและบันทึกการเรียก ใต้ invocation id
การเรียก “Holding budget” นาน ผลลัพธ์ไม่แน่ชัด (timeout, 5xx, usage ไม่ยืนยัน) reservation รอ operator reconciliation; hold ที่ถูกทิ้งเข้าเกณฑ์หลังห้านาที นี่คือ hold ไม่ใช่ charge และยอดจะตัดบัญชีจาก usage ที่ยืนยันเท่านั้น
ความคาดหวังเรื่องเงิน#
- การเรียกที่ระบบรับทุกครั้งกันอย่างน้อยหนึ่ง micro-USD แม้เป็นการเรียกฟรี กระเป๋าเงินที่ available ว่างถูกปฏิเสธด้วย
402ก่อน dispatch - Regenerate ใน Playground เป็นค่าใช้จ่ายใหม่; Retry delivery replay คำขอเดิม ภายใต้ idempotency key จึงไม่คิดเงินซ้ำ
- การเพิกถอนคีย์หรือลบสมาชิกหยุดการเรียกครั้งถัดไป ไม่ใช่การเรียกที่กำลังทำงาน งานที่รับเข้าแล้วจะตัดบัญชีเสมอเพื่อให้ระเบียนตรวจสอบเทียบได้