Fix first: upgrade the Temporal server to v1.31.1 or later. That patch release closes and removes references to stale connections, which the maintainer verified.

```text
dial tcp ... i/o timeout
```

1. Upgrade your Temporal server to v1.31.1 or later.
2. Run a scale-down or rolling update and watch the logs. Expected: no more repeated dial attempts to stale pod IPs.

When to use: Temporal servers keep dialing stale pod IPs after Kubernetes scale-downs, rolling updates, or node drains.

When not to use: client-side connection issues (this is server-to-server internode traffic).

Compatibility: Temporal server v1.31.1+. Reported in temporalio/temporal#8719.

Variants:
- "temporal stale grpc connections kubernetes"
- "temporal dial tcp i/o timeout pod termination"
- "temporal internode connections scale down"

Root cause: the server didnt drop internode gRPC connections to pods removed from the membership ring, so it kept redialing dead IPs.

Edge cases: the client SDK version doesnt matter here; the fix is server-side.