gRPC 13 INTERNAL vs 15 DATA_LOSS
Both gRPC 13 (INTERNAL) and 15 (DATA_LOSS) belong to the gRPC Status Codes category. 13 indicates that an internal error occurred. This means that some invariant expected by the underlying system has been broken. Meanwhile, 15 means that unrecoverable data loss or corruption has occurred.
Description
An internal error occurred. This means that some invariant expected by the underlying system has been broken.
When You See It
A server-side bug, a corrupted internal state, or an unexpected failure in a dependency. This is the gRPC equivalent of HTTP 500.
How to Fix
Check the server error logs and traces for the root cause. This typically indicates a bug that needs to be fixed in the server code.
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.
Key Differences
gRPC 13: An internal error occurred. This means that some invariant expected by the underlying system has been broken.
gRPC 15: Unrecoverable data loss or corruption has occurred.
You encounter 13 when a server-side bug, a corrupted internal state, or an unexpected failure in a dependency. This is the gRPC equivalent of HTTP 500.
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.
When to Use Which
For 13 (INTERNAL): Check the server error logs and traces for the root cause. This typically indicates a bug that needs to be fixed in the server code. 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.