diff --git a/cmd/mesh-controller/rollout.go b/cmd/mesh-controller/rollout.go index d2e9f2f..f314642 100644 --- a/cmd/mesh-controller/rollout.go +++ b/cmd/mesh-controller/rollout.go @@ -127,9 +127,13 @@ func readinessOf(ctx context.Context, inv *inventory.Inventory) (broker.Readines if address != "" { // One dial, briefly. "Is it answering" is the one fact records cannot hold, and a mesh about // to move onto a server that is not there should hear it here rather than afterwards. - if conn, err := nats.Connect(broker.BareAddress(address), nats.Timeout(5*time.Second)); err == nil { + // + // **Dialled the way the mesh dials it** — credential and pin — because a bare connect to a + // bus that requires TLS and a user fails at the handshake, and the check then reported a + // standing server as absent (seen live, 2026-09-28). + if js, err := broker.Dial(address, nats.Timeout(5*time.Second)); err == nil { state.ServerStanding = true - conn.Close() + js.Close() } }