# rpc error: code = ResourceExhausted desc = grpc: received message larger than max (5242880 vs. 4194304)

- **ID:** `go/grpc-client-max-recv-message-size`
- **Domain:** go
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

The gRPC server sent a response larger than the client's max receive message size (default 4 MB).

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 1.3 | active | — | — |

## Workarounds

1. **Increase client max receive message size in dial options.** (95% success)
   ```
   conn, err := grpc.Dial(address, grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(10*1024*1024)))
   ```
2. **Use streaming RPC to handle large payloads in chunks.** (85% success)
   ```
   service LargeData { rpc StreamData(stream Request) returns (stream Response); }
   ```

## Dead Ends

- **Reduce the data size on the server side.** — The data is necessary; shrinking may lose information. (70% fail)
- **Set the max size on server only.** — The client enforces its own limit independently. (90% fail)
