gRPC 12 UNIMPLEMENTED vs 16 UNAUTHENTICATED
Both gRPC 12 (UNIMPLEMENTED) and 16 (UNAUTHENTICATED) belong to the gRPC Status Codes category. 12 indicates that the operation is not implemented or is not supported/enabled in this service. Meanwhile, 16 means that the request does not have valid authentication credentials for the operation.
Description
The operation is not implemented or is not supported/enabled in this service.
When You See It
The client called an RPC method that the server does not implement. This often happens when the client uses a newer proto definition than the server supports.
How to Fix
Verify the server version supports the method you're calling. Update the server to implement the missing method, or use an alternative endpoint.
Description
The request does not have valid authentication credentials for the operation.
When You See It
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.
How to Fix
Provide valid authentication credentials (e.g., refresh the OAuth token, regenerate the API key, or renew the client certificate).
Key Differences
gRPC 12: The operation is not implemented or is not supported/enabled in this service.
gRPC 16: The request does not have valid authentication credentials for the operation.
You encounter 12 when the client called an RPC method that the server does not implement. This often happens when the client uses a newer proto definition than the server supports.
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.
When to Use Which
For 12 (UNIMPLEMENTED): Verify the server version supports the method you're calling. Update the server to implement the missing method, or use an alternative endpoint. For 16 (UNAUTHENTICATED): Provide valid authentication credentials (e.g., refresh the OAuth token, regenerate the API key, or renew the client certificate).