gRPC

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

1.

gRPC 13: An internal error occurred. This means that some invariant expected by the underlying system has been broken.

2.

gRPC 15: Unrecoverable data loss or corruption has occurred.

3.

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.

4.

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.

Learn More