@ -39,51 +39,37 @@ extern "C" {
# endif
typedef enum {
/* Not an error; returned on success
HTTP Mapping : 200 OK */
/* Not an error; returned on success */
GRPC_STATUS_OK = 0 ,
/* The operation was cancelled (typically by the caller).
HTTP Mapping : 499 Client Closed Request */
/* The operation was cancelled (typically by the caller). */
GRPC_STATUS_CANCELLED = 1 ,
/* Unknown error. An example of where this error may be returned is
if a Status value received from another address space belongs to
an error - space that is not known in this address space . Also
errors raised by APIs that do not return enough error information
may be converted to this error .
HTTP Mapping : 500 Internal Server Error */
may be converted to this error . */
GRPC_STATUS_UNKNOWN = 2 ,
/* Client specified an invalid argument. Note that this differs
from FAILED_PRECONDITION . INVALID_ARGUMENT indicates arguments
that are problematic regardless of the state of the system
( e . g . , a malformed file name ) .
HTTP Mapping : 400 Bad Request */
( e . g . , a malformed file name ) . */
GRPC_STATUS_INVALID_ARGUMENT = 3 ,
/* Deadline expired before operation could complete. For operations
that change the state of the system , this error may be returned
even if the operation has completed successfully . For example , a
successful response from a server could have been delayed long
enough for the deadline to expire .
HTTP Mapping : 504 Gateway Timeout */
enough for the deadline to expire . */
GRPC_STATUS_DEADLINE_EXCEEDED = 4 ,
/* Some requested entity (e.g., file or directory) was not found.
HTTP Mapping : 404 Not Found */
/* Some requested entity (e.g., file or directory) was not found. */
GRPC_STATUS_NOT_FOUND = 5 ,
/* Some entity that we attempted to create (e.g., file or directory)
already exists .
HTTP Mapping : 409 Conflict */
already exists . */
GRPC_STATUS_ALREADY_EXISTS = 6 ,
/* The caller does not have permission to execute the specified
@ -91,21 +77,15 @@ typedef enum {
caused by exhausting some resource ( use RESOURCE_EXHAUSTED
instead for those errors ) . PERMISSION_DENIED must not be
used if the caller can not be identified ( use UNAUTHENTICATED
instead for those errors ) .
HTTP Mapping : 403 Forbidden */
instead for those errors ) . */
GRPC_STATUS_PERMISSION_DENIED = 7 ,
/* The request does not have valid authentication credentials for the
operation .
HTTP Mapping : 401 Unauthorized */
operation . */
GRPC_STATUS_UNAUTHENTICATED = 16 ,
/* Some resource has been exhausted, perhaps a per-user quota, or
perhaps the entire file system is out of space .
HTTP Mapping : 429 Too Many Requests */
perhaps the entire file system is out of space . */
GRPC_STATUS_RESOURCE_EXHAUSTED = 8 ,
/* Operation was rejected because the system is not in a state
@ -126,23 +106,14 @@ typedef enum {
( d ) Use FAILED_PRECONDITION if the client performs conditional
REST Get / Update / Delete on a resource and the resource on the
server does not match the condition . E . g . , conflicting
read - modify - write on the same resource .
HTTP Mapping : 400 Bad Request
NOTE : HTTP spec says 412 Precondition Failed should only be used if
the request contains Etag related headers . So if the server does see
Etag related headers in the request , it may choose to return 412
instead of 400 for this error code . */
read - modify - write on the same resource . */
GRPC_STATUS_FAILED_PRECONDITION = 9 ,
/* The operation was aborted, typically due to a concurrency issue
like sequencer check failures , transaction aborts , etc .
See litmus test above for deciding between FAILED_PRECONDITION ,
ABORTED , and UNAVAILABLE .
HTTP Mapping : 409 Conflict */
ABORTED , and UNAVAILABLE . */
GRPC_STATUS_ABORTED = 10 ,
/* Operation was attempted past the valid range. E.g., seeking or
@ -159,21 +130,15 @@ typedef enum {
OUT_OF_RANGE . We recommend using OUT_OF_RANGE ( the more specific
error ) when it applies so that callers who are iterating through
a space can easily look for an OUT_OF_RANGE error to detect when
they are done .
HTTP Mapping : 400 Bad Request */
they are done . */
GRPC_STATUS_OUT_OF_RANGE = 11 ,
/* Operation is not implemented or not supported/enabled in this service.
HTTP Mapping : 501 Not Implemented */
/* Operation is not implemented or not supported/enabled in this service. */
GRPC_STATUS_UNIMPLEMENTED = 12 ,
/* Internal errors. Means some invariants expected by underlying
system has been broken . If you see one of these errors ,
something is very broken .
HTTP Mapping : 500 Internal Server Error */
something is very broken . */
GRPC_STATUS_INTERNAL = 13 ,
/* The service is currently unavailable. This is a most likely a
@ -181,14 +146,10 @@ typedef enum {
a backoff .
See litmus test above for deciding between FAILED_PRECONDITION ,
ABORTED , and UNAVAILABLE .
HTTP Mapping : 503 Service Unavailable */
ABORTED , and UNAVAILABLE . */
GRPC_STATUS_UNAVAILABLE = 14 ,
/* Unrecoverable data loss or corruption.
HTTP Mapping : 500 Internal Server Error */
/* Unrecoverable data loss or corruption. */
GRPC_STATUS_DATA_LOSS = 15 ,
/* Force users to include a default branch: */