# UNAVAILABLE: grpc: load balancing policy "round_robin" not found

- **ID:** `grpc/load-balancing-policy-not-found`
- **Domain:** grpc
- **Category:** config_error
- **Error Code:** `ELBNOTFOUND`
- **Verification:** ai_generated
- **Fix Rate:** 95%

## Root Cause

The specified load balancing policy is not registered in the gRPC client, often because the corresponding resolver plugin is missing or the policy name is misspelled.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| gRPC v1.57.0 | active | — | — |
| gRPC v1.61.0 | active | — | — |
| gRPC v1.66.0 | active | — | — |

## Workarounds

1. **Register the 'round_robin' policy by importing the load balancer plugin: `import grpc.experimental; grpc.experimental.register_load_balancer('round_robin', grpc.experimental.RoundRobinLoadBalancer)`** (95% success)
   ```
   Register the 'round_robin' policy by importing the load balancer plugin: `import grpc.experimental; grpc.experimental.register_load_balancer('round_robin', grpc.experimental.RoundRobinLoadBalancer)`
   ```
2. **Use a built-in policy like 'pick_first' (default) by removing the custom LB policy from the client configuration: `channel = grpc.insecure_channel(target)`** (90% success)
   ```
   Use a built-in policy like 'pick_first' (default) by removing the custom LB policy from the client configuration: `channel = grpc.insecure_channel(target)`
   ```
3. **If using a service config, ensure the policy name matches exactly (case-sensitive) and is supported by the gRPC version, e.g., `{"loadBalancingConfig": [{"round_robin": {}}]}`.** (85% success)
   ```
   If using a service config, ensure the policy name matches exactly (case-sensitive) and is supported by the gRPC version, e.g., `{"loadBalancingConfig": [{"round_robin": {}}]}`.
   ```

## Dead Ends

- **Changing the target URI to use a different scheme like 'dns://'.** — The error is about the load balancing policy, not the resolver scheme; changing the scheme does not register the policy. (85% fail)
- **Setting the environment variable GRPC_LB_POLICY to a random string.** — Environment variables do not register custom policies; they only configure built-in ones. (95% fail)
- **Reinstalling the gRPC package without updating the policy registration code.** — The policy must be explicitly imported or registered in code; reinstalling does not add missing plugins. (90% fail)
