diff --git a/internal/link/hearing_nats.go b/internal/link/hearing_nats.go index d3416be..804534d 100644 --- a/internal/link/hearing_nats.go +++ b/internal/link/hearing_nats.go @@ -70,7 +70,10 @@ func dialNats(ctx context.Context, m Membership, timeout time.Duration) (Link, e } opts := []nats.Option{ nats.Secure(config), - nats.UserInfo(m.Node, m.Password), + // The mesh names a machine's bus user "node." (the controller's principal scheme), and + // the server refused the bare name the first time a machine dialled it: "authentication + // error - User". The same string the mesh composed into the user list, or nothing connects. + nats.UserInfo("node."+m.Node, m.Password), nats.Name("mesh-host/" + m.Node), nats.Timeout(timeout), // A node that has silently lost its route notices, rather than holding a connection the