From 1656a76cb314d3d1c4e310632d65d67130467829 Mon Sep 17 00:00:00 2001 From: andig Date: Tue, 21 Jul 2026 19:37:58 +0200 Subject: [PATCH] Mqtt: wait for retained message after subscribe before first read (#32031) --- plugin/mqtt.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plugin/mqtt.go b/plugin/mqtt.go index a6582dbe5..5530e2dde 100644 --- a/plugin/mqtt.go +++ b/plugin/mqtt.go @@ -118,6 +118,16 @@ func (m *Mqtt) newReceiver() (*msgHandler, error) { } err := m.client.Listen(m.topic, h.receive) + + // without timeout, wait briefly for a retained message- it arrives right after suback + if err == nil && m.timeout == 0 { + select { + case <-h.val.Done(): + case <-m.ctx.Done(): + case <-time.After(100 * time.Millisecond): + } + } + return h, err }