diff --git a/internal/event/target/mqtt.go b/internal/event/target/mqtt.go index 0448a383f..82e5809a8 100644 --- a/internal/event/target/mqtt.go +++ b/internal/event/target/mqtt.go @@ -213,8 +213,13 @@ func NewMQTTTarget(id string, args MQTTArgs, doneCh <-chan struct{}, loggerOnce args.KeepAlive = 10 * time.Second } + // Using hex here, to make sure we avoid 23 + // character limit on client_id according to + // MQTT spec. + clientID := fmt.Sprintf("%x", time.Now().UnixNano()) + options := mqtt.NewClientOptions(). - SetClientID(id). + SetClientID(clientID). SetCleanSession(true). SetUsername(args.User). SetPassword(args.Password).