# INTERNAL: grpc: max concurrent streams exceeded on client for server localhost:8080

- **ID:** `grpc/max-concurrent-streams-exceeded-client`
- **Domain:** grpc
- **Category:** resource_error
- **Error Code:** `ECONCSTRM`
- **Verification:** ai_generated
- **Fix Rate:** 82%

## Root Cause

Client-side gRPC stream multiplexing exceeds the configured maximum concurrent streams limit (default 100) per HTTP/2 connection.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| gRPC v1.62.0 | active | — | — |
| gRPC v1.59.0 | active | — | — |
| gRPC v1.56.0 | active | — | — |
| Go gRPC v1.63.0 | active | — | — |

## Workarounds

1. **Increase the client-side max concurrent streams via channel config: `grpc.ChannelConfig{MaxConcurrentStreams: 200}` in Go, or `withMaxConcurrentStreams(200)` in C++.** (85% success)
   ```
   Increase the client-side max concurrent streams via channel config: `grpc.ChannelConfig{MaxConcurrentStreams: 200}` in Go, or `withMaxConcurrentStreams(200)` in C++.
   ```
2. **Create multiple gRPC channels to distribute streams across connections. Each channel gets its own HTTP/2 connection.** (78% success)
   ```
   Create multiple gRPC channels to distribute streams across connections. Each channel gets its own HTTP/2 connection.
   ```

## Dead Ends

- **Increasing server-side max concurrent streams** — The error is client-side; server config doesn't affect client limits. (95% fail)
- **Restarting the client without code changes** — The limit is hit again under the same load pattern. (90% fail)
- **Disabling HTTP/2 flow control** — Flow control and stream limits are separate; disabling flow control doesn't increase stream count. (85% fail)
