gRPC

gRPC 8 RESOURCE_EXHAUSTED vs 15 DATA_LOSS

Both gRPC 8 (RESOURCE_EXHAUSTED) and 15 (DATA_LOSS) belong to the gRPC Status Codes category. 8 indicates that some resource has been exhausted, perhaps a per-user quota, or the entire file system is out of space. Meanwhile, 15 means that unrecoverable data loss or corruption has occurred.

Description

Some resource has been exhausted, perhaps a per-user quota, or the entire file system is out of space.

When You See It

A rate limit was hit, a quota was exceeded, or the server ran out of memory/disk. Common with API rate limiting and resource quotas.

How to Fix

Implement exponential backoff and retry. If quota-related, request a quota increase or optimize your usage pattern to stay within limits.

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 8: Some resource has been exhausted, perhaps a per-user quota, or the entire file system is out of space.

2.

gRPC 15: Unrecoverable data loss or corruption has occurred.

3.

You encounter 8 when a rate limit was hit, a quota was exceeded, or the server ran out of memory/disk. Common with API rate limiting and resource quotas.

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 8 (RESOURCE_EXHAUSTED): Implement exponential backoff and retry. If quota-related, request a quota increase or optimize your usage pattern to stay within limits. 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