Troubleshooting
What this domain tests
Troubleshooting tests whether you can locate faults in configuration and in the Envoy data plane without guessing. Expect istioctl diagnostics, xDS sync status, response flags, and checks for injection, routing, and policy.
Core rules
istioctl analyzefinds static configuration errors;proxy-statusshows whether Envoy has synced xDS;proxy-configprints listeners, routes, clusters, and endpoints.istioctl x describe podsummarizes effective config;istioctl bug-reportcollects cluster state.- 503 response flags narrow the cause:
NRmeans no route,UFan upstream connection failure, andUHno healthy upstream. - Check injection labels, revision labels, Gateway selector, VirtualService host and gateway binding, DestinationRule subset labels, and service port protocol.
- mTLS
STRICTwith a plaintext client, or an AuthorizationPolicy deny, can look like an application failure.
Worked example
Ingress returns 503. proxy-status is SYNCED. proxy-config route shows no route for Host shop.example.com. The VirtualService lists shop.example instead of shop.example.com, or the Gateway is not bound. Fix the hosts and bind the gateway, then recheck. Reasoning: Envoy matches the Host header against VirtualService hosts; no match gives no route. If a route exists but its cluster has no endpoints, inspect subset labels and pod readiness.
Traps
Trusting analyze as a runtime check; editing config without checking Envoy's route; deleting pods before checking labels; ignoring response flags; and assuming every 503 is application code.