รหัสข้อผิดพลาดใน Canonical สําหรับ gRPC API
บางครั้งอาจมีรหัสข้อผิดพลาดหลายรายการ บริการควรแสดงรหัสข้อผิดพลาดเฉพาะที่เกี่ยวข้องมากที่สุด เช่น ใช้ OUT_OF_RANGE มากกว่า FAILED_PRECONDITION หากรหัสทั้งสองใช้ได้ เช่นเดียวกัน NOT_FOUND หรือ ALREADY_EXISTS ในช่วง FAILED_PRECONDITION
| Enum | |
|---|---|
OK | 
              ไม่ใช่ข้อผิดพลาด แสดงผลสําเร็จ การจับคู่ HTTP: 200 OK  | 
            
CANCELLED | 
              ยกเลิกการดําเนินการแล้ว โดยทั่วไปผู้โทรจะโทร การแมป HTTP: คําขอแบบไคลเอ็นต์ปิด 499  | 
            
UNKNOWN | 
              ข้อผิดพลาดที่ไม่รู้จัก เช่น ระบบอาจแสดงข้อผิดพลาดเมื่อค่า  การแมป HTTP: ข้อผิดพลาดภายในเซิร์ฟเวอร์ 500  | 
            
INVALID_ARGUMENT | 
              ไคลเอ็นต์ระบุอาร์กิวเมนต์ไม่ถูกต้อง โปรดทราบว่าเวลานี้แตกต่างจาก  การจับคู่ HTTP: 400 คําขอไม่ถูกต้อง  | 
            
DEADLINE_EXCEEDED | 
              กําหนดเวลาหมดอายุก่อนที่การดําเนินการจะเสร็จสมบูรณ์ สําหรับการดําเนินการที่เปลี่ยนสถานะของระบบ ระบบอาจแสดงข้อผิดพลาดนี้แม้ว่าการดําเนินการจะเสร็จสมบูรณ์ก็ตาม ตัวอย่างเช่น การตอบกลับที่สําเร็จจากเซิร์ฟเวอร์อาจล่าช้าเป็นระยะเวลาที่ใกล้จะหมดอายุ การจับคู่ HTTP: 504 เกตเวย์หมดเวลา  | 
            
NOT_FOUND | 
              ไม่พบเอนทิตีที่ขอบางรายการ (เช่น ไฟล์หรือไดเรกทอรี) หมายเหตุสําหรับนักพัฒนาซอฟต์แวร์เซิร์ฟเวอร์: ถ้าคําขอถูกปฏิเสธสําหรับผู้ใช้ทั้งชั้น เช่น การเปิดตัวแบบค่อยเป็นค่อยไปหรือรายการที่อนุญาตที่ไม่มีเอกสาร อาจมีการใช้  การจับคู่ HTTP: ไม่พบ 404  | 
            
ALREADY_EXISTS | 
              มีเอนทิตีที่ไคลเอ็นต์พยายามจะสร้าง (เช่น ไฟล์หรือไดเรกทอรี) อยู่แล้ว การแมป HTTP: ความขัดแย้ง 409  | 
            
PERMISSION_DENIED | 
              ผู้โทรไม่มีสิทธิ์ดําเนินการที่ระบุ ต้องไม่ใช้  การแมป HTTP: 403 Forbidden  | 
            
UNAUTHENTICATED | 
              คำขอไม่มีข้อมูลเข้าสู่ระบบการตรวจสอบสิทธิ์ที่ถูกต้องสำหรับการดำเนินการ การแมป HTTP: 401 ไม่ได้รับอนุญาต  | 
            
RESOURCE_EXHAUSTED | 
              ทรัพยากรบางส่วนหมดแล้ว อาจจะเป็นโควต้าต่อผู้ใช้ หรือทั้งระบบไฟล์เต็ม การจับคู่ HTTP: 429 คําขอมากเกินไป  | 
            
FAILED_PRECONDITION | 
              การดําเนินการถูกปฏิเสธเนื่องจากระบบไม่อยู่ในสถานะที่จําเป็นสําหรับการดําเนินงาน ตัวอย่างเช่น ไดเรกทอรีที่จะลบไม่ว่างเปล่า การดําเนินการ rmdir จะถูกนําไปใช้กับไดเรกทอรีที่ไม่ใช่ไดเรกทอรี ฯลฯ ผู้ใช้บริการจะใช้หลักเกณฑ์ต่อไปนี้เพื่อเลือกเวลาระหว่าง  การจับคู่ HTTP: 400 คําขอไม่ถูกต้อง  | 
            
ABORTED | 
              การดําเนินการถูกล้มเลิก โดยทั่วไปจะเกิดจากปัญหาเกิดขึ้นพร้อมกัน เช่น การตรวจสอบของตัวตรวจสอบล้มเหลวหรือล้มเลิกธุรกรรม ดูหลักเกณฑ์ด้านบนสําหรับคําตัดสินระหว่าง  การแมป HTTP: ความขัดแย้ง 409  | 
            
OUT_OF_RANGE | 
              มีการพยายามดําเนินการหลังจากผ่านช่วงที่ถูกต้องแล้ว เช่น การค้นหาหรืออ่านไฟล์ท้ายไฟล์ ข้อผิดพลาดนี้บ่งบอกถึงปัญหาที่สามารถแก้ไขได้หากสถานะระบบเปลี่ยนไป ต่างจาก  มีความเหลื่อมล้ํากันเล็กน้อยระหว่าง  การจับคู่ HTTP: 400 คําขอไม่ถูกต้อง  | 
            
UNIMPLEMENTED | 
              การดําเนินการยังไม่เสร็จสมบูรณ์ หรือไม่สนับสนุน/เปิดใช้ในบริการนี้ การแมป HTTP: ไม่มีการใช้งาน 501  | 
            
INTERNAL | 
              ข้อผิดพลาดภายใน ซึ่งหมายความว่า ตัวแปรภายในระบบบางส่วนอาจเสียหาย รหัสข้อผิดพลาดนี้สงวนไว้สําหรับข้อผิดพลาดร้ายแรง การแมป HTTP: ข้อผิดพลาดภายในเซิร์ฟเวอร์ 500  | 
            
UNAVAILABLE | 
              ไม่พร้อมให้บริการนี้ในขณะนี้ อาการนี้มักเป็นอาการชั่วคราวซึ่งสามารถแก้ไขได้ด้วยการลองย้อนกลับ โปรดทราบว่าการลองซ้ําที่ไม่ปรากฏนั้นไม่ปลอดภัยเสมอไป ดูหลักเกณฑ์ด้านบนสําหรับคําตัดสินระหว่าง  การแมป HTTP: 503 บริการไม่พร้อมใช้งาน  | 
            
DATA_LOSS | 
              ข้อมูลสูญหายหรือกู้คืนไม่ได้ การแมป HTTP: ข้อผิดพลาดภายในเซิร์ฟเวอร์ 500  |