From c2a03e612855651639a79047929a4137e8827114 Mon Sep 17 00:00:00 2001 From: Steve Munene Date: Mon, 16 Jun 2025 17:20:01 +0300 Subject: [PATCH] MG-167 - Terminate Alarms message which failed to handle (#191) * initial implementation Signed-off-by: nyagamunene * update tests Signed-off-by: nyagamunene * update postgres writer Signed-off-by: nyagamunene * fix readers tests Signed-off-by: nyagamunene * address comments Signed-off-by: nyagamunene * fix senML naming Signed-off-by: nyagamunene * remove logger from service Signed-off-by: nyagamunene * fix failing linter Signed-off-by: nyagamunene * terminate message when alarm fails to decode Signed-off-by: nyagamunene * revert changes Signed-off-by: nyagamunene * remove message from logging Signed-off-by: nyagamunene * remove empty line Signed-off-by: nyagamunene * wrap error Signed-off-by: nyagamunene --------- Signed-off-by: nyagamunene --- alarms/consumer/consumer.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/alarms/consumer/consumer.go b/alarms/consumer/consumer.go index 3ad22c129..a8667b7fe 100644 --- a/alarms/consumer/consumer.go +++ b/alarms/consumer/consumer.go @@ -15,6 +15,8 @@ import ( "github.com/absmach/supermq/pkg/messaging" ) +var errFailedToDecode = errors.New("failed to decode alarm") + type handler struct { svc alarms.Service logger *slog.Logger @@ -34,7 +36,7 @@ func (h handler) Handle(msg *messaging.Message) (err error) { var alarm alarms.Alarm if err := gob.NewDecoder(bytes.NewReader(msg.GetPayload())).Decode(&alarm); err != nil { - return err + return messaging.NewError(errors.Wrap(errFailedToDecode, err), messaging.Term) } alarm.DomainID = msg.GetDomain() alarm.ChannelID = msg.GetChannel()