diff --git a/shared/management/client/grpc.go b/shared/management/client/grpc.go index 7ce79b418..0bd912929 100644 --- a/shared/management/client/grpc.go +++ b/shared/management/client/grpc.go @@ -233,6 +233,9 @@ func (c *GrpcClient) withMgmtStream( return nil //nolint:nilerr // a cancelled context means shutdown, not a retryable failure } else if waited { backOff.Reset() + // dials attempted while offline grew the channel's internal backoff; + // reset it too, or the reconnect waits out that timer first + c.conn.ResetConnectBackoff() } connState := c.conn.GetState() diff --git a/shared/signal/client/grpc.go b/shared/signal/client/grpc.go index 0af4dc4da..f9bc7c737 100644 --- a/shared/signal/client/grpc.go +++ b/shared/signal/client/grpc.go @@ -197,6 +197,9 @@ func (c *GrpcClient) Receive(ctx context.Context, msgHandler func(msg *proto.Mes return nil } else if waited { backOff.Reset() + // dials attempted while offline grew the channel's internal backoff; + // reset it too, or the reconnect waits out that timer first + c.signalConn.ResetConnectBackoff() } c.notifyStreamDisconnected()