Code

Mã lỗi chính tắc cho các API gRPC.

Đôi khi, có thể áp dụng nhiều mã lỗi. Dịch vụ sẽ trả về mã lỗi cụ thể nhất được áp dụng. Ví dụ: ưu tiên OUT_OF_RANGE hơn FAILED_PRECONDITION nếu có cả hai mã. Tương tự, bạn thích NOT_FOUND hoặc ALREADY_EXISTS hơn FAILED_PRECONDITION.

Enum
OK

Không phải lỗi; trả về khi thành công.

Liên kết HTTP: 200 OK

CANCELLED

Thao tác này đã bị huỷ, thường là do người gọi thực hiện.

Liên kết HTTP: 499 Yêu cầu đã đóng của ứng dụng

UNKNOWN

Lỗi không xác định. Ví dụ: có thể trả về lỗi này khi giá trị Status nhận được từ một vùng địa chỉ khác thuộc về vùng lỗi không xác định trong vùng địa chỉ này. Ngoài ra, các lỗi do các API không trả về đủ thông tin lỗi có thể được chuyển đổi thành lỗi này.

Liên kết HTTP: Lỗi 500 máy chủ nội bộ

INVALID_ARGUMENT

Máy khách đã chỉ định một đối số không hợp lệ. Xin lưu ý rằng giá trị này khác với FAILED_PRECONDITION. INVALID_ARGUMENT cho biết các đối số có vấn đề bất kể trạng thái của hệ thống (ví dụ: tên tệp không đúng định dạng).

Liên kết HTTP: 400 yêu cầu không hợp lệ

DEADLINE_EXCEEDED

Hạn chót đã hết hạn trước khi thao tác có thể hoàn tất. Đối với các thao tác thay đổi trạng thái của hệ thống, lỗi này có thể được trả về ngay cả khi thao tác đã hoàn tất thành công. Ví dụ: phản hồi thành công từ máy chủ có thể bị trì hoãn đủ lâu để thời hạn hết hạn.

Liên kết HTTP: Hết thời gian chờ 504 cổng

NOT_FOUND

Không tìm thấy một số thực thể được yêu cầu (ví dụ: tệp hoặc thư mục).

Lưu ý dành cho nhà phát triển máy chủ: nếu yêu cầu bị từ chối đối với toàn bộ lớp người dùng, chẳng hạn như phát hành tính năng dần dần hoặc danh sách cho phép không có tài liệu, thì NOT_FOUND có thể được sử dụng. Nếu một yêu cầu bị từ chối đối với một số người dùng trong một lớp người dùng, chẳng hạn như quyền kiểm soát quyền truy cập của người dùng, thì bạn phải sử dụng PERMISSION_DENIED.

Liên kết HTTP: Không tìm thấy 404

ALREADY_EXISTS

Mục mà khách hàng cố gắng tạo (ví dụ: tệp hoặc thư mục) đã tồn tại.

Liên kết HTTP: Xung đột 409

PERMISSION_DENIED

Người gọi không có quyền thực thi thao tác đã chỉ định. Không được dùng PERMISSION_DENIED cho các trường hợp từ chối do sử dụng hết tài nguyên (hãy sử dụng RESOURCE_EXHAUSTED cho các lỗi đó). Không được sử dụng PERMISSION_DENIED nếu không thể nhận dạng người gọi (thay vào đó, hãy sử dụng UNAUTHENTICATED cho những lỗi đó). Mã lỗi này không ngụ ý rằng yêu cầu là hợp lệ hoặc thực thể được yêu cầu tồn tại hay đáp ứng các điều kiện tiên quyết khác.

Liên kết HTTP: 403 bị cấm

UNAUTHENTICATED

Yêu cầu không có thông tin xác thực hợp lệ cho hoạt động này.

Liên kết HTTP: 401 trái phép

RESOURCE_EXHAUSTED

Một số tài nguyên đã hết, có thể là định mức cho mỗi người dùng hoặc có thể là toàn bộ hệ thống tệp đã hết dung lượng.

Liên kết HTTP: 429 Quá nhiều yêu cầu

FAILED_PRECONDITION

Thao tác này bị từ chối vì hệ thống không ở trạng thái cần thiết để thực thi thao tác. Ví dụ: thư mục cần xoá không được để trống, thao tác rmdir được áp dụng cho một thư mục không phải thư mục, v.v.

Trình triển khai dịch vụ có thể sử dụng các nguyên tắc sau để quyết định giữa FAILED_PRECONDITION, ABORTEDUNAVAILABLE: (a) Sử dụng UNAVAILABLE nếu ứng dụng chỉ có thể thử lại lệnh gọi không thành công. (b) Sử dụng ABORTED nếu ứng dụng cần thử lại ở cấp cao hơn. Ví dụ: khi ứng dụng kiểm thử và tập hợp do ứng dụng chỉ định không thành công, cho biết ứng dụng cần khởi động lại một trình tự đọc-sửa đổi-ghi. (c) Sử dụng FAILED_PRECONDITION nếu ứng dụng không được thử lại cho đến khi trạng thái hệ thống đã được khắc phục rõ ràng. Ví dụ: nếu "rmdir" không thành công vì thư mục không để trống, thì FAILED_PRECONDITION sẽ được trả về vì ứng dụng không được thử lại trừ khi các tệp bị xoá khỏi thư mục.

Liên kết HTTP: 400 yêu cầu không hợp lệ

ABORTED

Thao tác này đã bị huỷ, thường là do vấn đề đồng thời, chẳng hạn như lỗi kiểm tra trình tự hoặc huỷ giao dịch.

Hãy xem các nguyên tắc ở trên để quyết định giữa FAILED_PRECONDITION, ABORTEDUNAVAILABLE.

Liên kết HTTP: Xung đột 409

OUT_OF_RANGE

Hoạt động đã được cố gắng vượt quá phạm vi hợp lệ. Ví dụ: tìm hoặc đọc tệp cuối tệp trước đó.

Không giống như INVALID_ARGUMENT, lỗi này cho biết có thể đã khắc phục sự cố nếu trạng thái hệ thống thay đổi. Ví dụ: hệ thống tệp 32 bit sẽ tạo INVALID_ARGUMENT nếu được yêu cầu đọc ở độ lệch không nằm trong phạm vi [0,2^32-1], nhưng sẽ tạo OUT_OF_RANGE nếu được yêu cầu đọc từ độ lệch sau kích thước tệp hiện tại.

Có một chút trùng lặp giữa FAILED_PRECONDITIONOUT_OF_RANGE. Bạn nên sử dụng OUT_OF_RANGE (lỗi cụ thể hơn) khi áp dụng để trình gọi lặp lại trong một không gian có thể dễ dàng tìm lỗi OUT_OF_RANGE để phát hiện khi hoàn tất.

Liên kết HTTP: 400 yêu cầu không hợp lệ

UNIMPLEMENTED

Thao tác này không được triển khai hoặc không được hỗ trợ/được bật trong dịch vụ này.

Liên kết HTTP: 501 chưa được triển khai

INTERNAL

Lỗi nội bộ. Điều này có nghĩa là một số biến thể dự kiến do hệ thống cơ bản dự kiến đã bị hỏng. Mã lỗi này được dành riêng cho lỗi nghiêm trọng.

Liên kết HTTP: Lỗi 500 máy chủ nội bộ

UNAVAILABLE

Dịch vụ này hiện không dùng được. Đây rất có thể là một tình trạng tạm thời, có thể khắc phục bằng cách thử lại bằng một khoảng thời gian đợi. Xin lưu ý rằng không phải lúc nào bạn cũng có thể thử lại các thao tác không cụ thể.

Hãy xem các nguyên tắc ở trên để quyết định giữa FAILED_PRECONDITION, ABORTEDUNAVAILABLE.

Liên kết HTTP: Dịch vụ 503 không khả dụng

DATA_LOSS

Lỗi hoặc sự cố mất dữ liệu không thể khôi phục.

Liên kết HTTP: Lỗi 500 máy chủ nội bộ