gRPC

gRPC 5 NOT_FOUND vs 16 UNAUTHENTICATED

Both gRPC 5 (NOT_FOUND) and 16 (UNAUTHENTICATED) belong to the gRPC Status Codes category. 5 indicates that some requested entity was not found. For example, a file or directory that the RPC was supposed to operate on does not exist. Meanwhile, 16 means that the request does not have valid authentication credentials for the operation.

描述

Some requested entity was not found. For example, a file or directory that the RPC was supposed to operate on does not exist.

何时出现

The resource referenced in the request doesn't exist — such as looking up a user by ID that has been deleted or never created.

如何修复

Verify the resource identifier is correct. Ensure the resource was created before accessing it, or handle the not-found case gracefully in your client.

描述

The request does not have valid authentication credentials for the operation.

何时出现

No credentials were provided, or the provided token/certificate is expired or invalid. Different from PERMISSION_DENIED (code 7), which means authenticated but not authorized.

如何修复

Provide valid authentication credentials (e.g., refresh the OAuth token, regenerate the API key, or renew the client certificate).

主要区别

1.

gRPC 5: Some requested entity was not found. For example, a file or directory that the RPC was supposed to operate on does not exist.

2.

gRPC 16: The request does not have valid authentication credentials for the operation.

3.

You encounter 5 when the resource referenced in the request doesn't exist — such as looking up a user by ID that has been deleted or never created.

4.

You encounter 16 when no credentials were provided, or the provided token/certificate is expired or invalid. Different from PERMISSION_DENIED (code 7), which means authenticated but not authorized.

何时使用哪个

For 5 (NOT_FOUND): Verify the resource identifier is correct. Ensure the resource was created before accessing it, or handle the not-found case gracefully in your client. For 16 (UNAUTHENTICATED): Provide valid authentication credentials (e.g., refresh the OAuth token, regenerate the API key, or renew the client certificate).

了解更多