Code

Mã lỗi chuẩn cho các API gRPC.

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

Enum
OK

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

Ánh xạ HTTP: 200 OK

CANCELLED

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

Ánh xạ HTTP: 499 Ứng dụng đã đóng yêu cầu

UNKNOWN

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

Ánh xạ HTTP: 500 Lỗi máy chủ nội bộ

INVALID_ARGUMENT

Ứng dụng khách chỉ định đối số không hợp lệ. Xin lưu ý rằng thuộc tính 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 bị lỗi).

Ánh xạ HTTP: 400 Yêu cầu không hợp lệ

DEADLINE_EXCEEDED

Đã hết thời 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ột máy chủ có thể bị trì hoãn đủ lâu để thời hạn kết thúc.

Ánh xạ HTTP: 504 Hết thời gian chờ của cổng nối

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

Ánh xạ HTTP: 404 Not Found

ALREADY_EXISTS

Đã tồn tại thực thể mà ứng dụng khách tìm cách tạo (ví dụ: tệp hoặc thư mục).

Ánh xạ HTTP: 409 Xung đột

PERMISSION_DENIED

Người gọi không có quyền thực thi thao tác đã chỉ định. Bạn không được dùng PERMISSION_DENIED cho các trường hợp từ chối do hết tài nguyên (thay vào đó, hãy dùng RESOURCE_EXHAUSTED cho những lỗi đó). Bạn không được dùng PERMISSION_DENIED nếu không xác định được phương thức gọi (thay vào đó, hãy 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 hoặc đáp ứng các điều kiện tiên quyết khác.

Ánh xạ HTTP: 403 Bị cấm

UNAUTHENTICATED

Yêu cầu không có thông tin xác thực hợp lệ cho thao tác.

Ánh xạ HTTP: 401 Không được phép

RESOURCE_EXHAUSTED

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

Ánh xạ HTTP: 429 Quá nhiều yêu cầu

FAILED_PRECONDITION

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

Người 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 máy khách 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 nên thử lại ở cấp độ cao hơn. Ví dụ: khi một thao tác kiểm tra và thiết lập do ứng dụng chỉ định không thành công, cho biết ứng dụng nên khởi động lại một chuỗi đọ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 sửa chữa 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ì máy khách không được thử lại trừ phi các tệp bị xoá khỏi thư mục.

Ánh xạ HTTP: 400 Yêu cầu không hợp lệ

ABORTED

Thao tác bị huỷ bỏ, thường là do vấn đề về tính đồ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.

Ánh xạ HTTP: 409 Xung đột

OUT_OF_RANGE

Thao tác được thực hiện ngoài phạm vi hợp lệ. Ví dụ: tìm kiếm hoặc đọc quá cuối tệp.

Không giống như INVALID_ARGUMENT, lỗi này cho biết có một vấn đề có thể được khắc phụ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 ở một độ 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ừ một độ lệch vượt quá kích thước tệp hiện tại.

Có một số điểm 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 lỗi này áp dụng để những người gọi đang lặp lại qua một không gian có thể dễ dàng tìm kiếm lỗi OUT_OF_RANGE để phát hiện thời điểm họ hoàn tất.

Ánh xạ HTTP: 400 Yêu cầu không hợp lệ

UNIMPLEMENTED

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

Liên kết HTTP: 501 Chưa triển khai

INTERNAL

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

Ánh xạ HTTP: 500 Lỗi máy chủ nội bộ

UNAVAILABLE

Dịch vụ này hiện không dùng được. Đây thường là một điều kiện tạm thời và bạn có thể khắc phục bằng cách thử lại với độ trễ. Xin lưu ý rằng không phải lúc nào bạn cũng nên thử lại các thao tác không có tính chất luỹ đẳng.

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

Ánh xạ HTTP: 503 Không có dịch vụ

DATA_LOSS

Mất hoặc hư hỏng dữ liệu và không phục hồi được.

Ánh xạ HTTP: 500 Lỗi máy chủ nội bộ