go network_error ai_generated true

rpc error: code = Unavailable desc = name resolver error: produced zero addresses

ID: go/grpc-load-balancer-no-backends

Also available as: JSON · Markdown · 中文
80%Fix Rate
84%Confidence
0Evidence
2024-12-10First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
1.3 active

Root Cause

The gRPC load balancer resolver returned no backend addresses, often due to DNS failure or service discovery issues.

generic

中文

gRPC负载均衡器解析器未返回后端地址,通常是由于DNS故障或服务发现问题。

Workarounds

  1. 90% success Verify DNS resolution for the target hostname.
    nslookup my-service.default.svc.cluster.local
  2. 85% success Use a custom resolver with fallback addresses.
    resolver := manual.NewBuilderWithScheme("myresolver")
    resolver.InitialState(resolver.State{Addresses: []resolver.Address{{Addr: "10.0.0.1:50051"}}})
    conn, _ := grpc.Dial("myresolver:///service", grpc.WithResolvers(resolver))

Dead Ends

Common approaches that don't work:

  1. Hardcode a single backend address in the client. 70% fail

    Bypasses load balancing and defeats purpose.

  2. Increase DNS cache TTL. 90% fail

    Does not fix missing A records.