{
  "id": "go/grpc-unavailable-subchannel-transient-failure",
  "signature": "rpc error: code = Unavailable desc = last connection error: connection error: desc = \"transport: Error while dialing: dial tcp: lookup grpc.example.com on 10.0.0.2:53: no such host\"",
  "signature_zh": "rpc error: code = Unavailable desc = 最后一次连接错误：连接错误：拨号 tcp: 在 10.0.0.2:53 上查找 grpc.example.com：没有该主机",
  "regex": "rpc\\ error:\\ code\\ =\\ Unavailable\\ desc\\ =\\ last\\ connection\\ error:\\ connection\\ error:\\ desc\\ =\\ \"transport:\\ Error\\ while\\ dialing:\\ dial\\ tcp:\\ lookup\\ grpc\\.example\\.com\\ on\\ 10\\.0\\.0\\.2:53:\\ no\\ such\\ host\"",
  "domain": "go",
  "category": "network_error",
  "subcategory": null,
  "root_cause": "DNS resolution failed for the gRPC target. Common in Kubernetes when the service name is wrong, the DNS server is unreachable, or the pod's resolv.conf is misconfigured.",
  "root_cause_type": "generic",
  "root_cause_zh": "gRPC 目标的 DNS 解析失败。常见于 Kubernetes 中服务名错误、DNS 服务器不可达，或 Pod 的 resolv.conf 配置错误时。",
  "versions": [
    {
      "version": "1.30+",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "Breaks when the backend pod is rescheduled; loses load balancing across replicas",
      "fail_rate": 0.75,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "DNS NXDOMAIN returns immediately; a longer timeout does not make the name resolve",
      "fail_rate": 0.9,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "",
      "success_rate": 0.92,
      "how": "// Use <service>.<namespace>.svc.cluster.local\nconn, _ := grpc.Dial(\"users.default.svc.cluster.local:50051\", grpc.WithTransportCredentials(insecure.NewCredentials()))",
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "success_rate": 0.88,
      "how": "conn, _ := grpc.Dial(\"dns:///users.default.svc.cluster.local:50051\",\n  grpc.WithTransportCredentials(insecure.NewCredentials()),\n  grpc.WithDefaultServiceConfig(`{\"loadBalancingConfig\":[{\"round_robin\":{}}]}`))",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": null,
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.87,
  "fix_success_rate": 0.8,
  "resolvable": "true",
  "first_seen": "2025-03-04",
  "last_confirmed": "2025-01-01",
  "last_updated": "2025-01-01",
  "evidence_count": 0,
  "tags": [],
  "locale": "en",
  "aliases": []
}