gRPC 15 DATA_LOSS vs 16 UNAUTHENTICATED
Both gRPC 15 (DATA_LOSS) and 16 (UNAUTHENTICATED) belong to the gRPC Status Codes category. 15 indicates that unrecoverable data loss or corruption has occurred. Meanwhile, 16 means that the request does not have valid authentication credentials for the operation.
Description
Unrecoverable data loss or corruption has occurred.
When You See It
Critical data was lost or corrupted — for example, a checksum mismatch during transmission or an unrecoverable storage failure on the server.
How to Fix
Investigate the data integrity failure immediately. Restore from backups if available, and check for hardware failures or network corruption in the data path.
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 15: Unrecoverable data loss or corruption has occurred.
gRPC 16: The request does not have valid authentication credentials for the operation.
You encounter 15 when critical data was lost or corrupted — for example, a checksum mismatch during transmission or an unrecoverable storage failure on the server.
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 15 (DATA_LOSS): Investigate the data integrity failure immediately. Restore from backups if available, and check for hardware failures or network corruption in the data path. For 16 (UNAUTHENTICATED): Provide valid authentication credentials (e.g., refresh the OAuth token, regenerate the API key, or renew the client certificate).