From af221806fb58d726246b783164cb9a0897a492c1 Mon Sep 17 00:00:00 2001 From: blazSmehov Date: Thu, 7 May 2026 10:17:07 +0200 Subject: [PATCH] fix: catch error in subscription, propagate it to the main file --- internal/app/bridge/app.go | 6 +++++- internal/pkg/bridge/mqtt.go | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/internal/app/bridge/app.go b/internal/app/bridge/app.go index 4c7a2e8..2e72285 100644 --- a/internal/app/bridge/app.go +++ b/internal/app/bridge/app.go @@ -52,7 +52,11 @@ func New(cfg *config.Config) (*BridgeApp, error) { cleanup() return nil, err } - mqttClient.Subscribe() + + if err := mqttClient.Subscribe(); err != nil { + cleanup() + return nil, err + } return &BridgeApp{ Cfg: cfg, diff --git a/internal/pkg/bridge/mqtt.go b/internal/pkg/bridge/mqtt.go index 81278fa..38bf522 100644 --- a/internal/pkg/bridge/mqtt.go +++ b/internal/pkg/bridge/mqtt.go @@ -48,10 +48,14 @@ func NewMQTTClient(cfg *config.Config, publishHandler func(mqtt.Message)) (*MQTT } // Subscribe subscribes to the default bridge topic. -func (m *MQTTClient) Subscribe() { +func (m *MQTTClient) Subscribe() error { token := m.Client.Subscribe(subscribeTopic, 1, nil) token.Wait() + if err := token.Error(); err != nil { + return fmt.Errorf("mqtt subscribe: %w", err) + } slog.Info("MQTT subscribed", "topic", subscribeTopic) + return nil } // Disconnect disconnects the client with quiesce.