diff --git a/internal/usecases/consume/handlemessage.go b/internal/usecases/consume/handlemessage.go index f751492b0b01005db7c5b2e7251380733ac83f32..fd6977cb64faa20c60c720f58022e92f713d7012 100644 --- a/internal/usecases/consume/handlemessage.go +++ b/internal/usecases/consume/handlemessage.go @@ -25,13 +25,6 @@ HandleMessage gets called when a message is received */ func (s *Service) HandleMessage(msg *broker.Message) { - // Defer a panic intercepting function - defer func() { - if err := recover(); err != nil { - log.Printf("PANIC: %e", err.(error)) - } - }() - // Grab the headers from the message sessionID, clientID, queryID, err := getHeaders(&msg.Headers) if err != nil { @@ -40,6 +33,15 @@ func (s *Service) HandleMessage(msg *broker.Message) { } s.publishStatus("Received", sessionID, queryID) + // Defer a panic intercepting function + defer func(sessionID, queryID *string) { + if err := recover(); err != nil { + log.Printf("PANIC: %e", err.(error)) + + s.publishStatus("Critical Error", sessionID, queryID) + } + }(sessionID, queryID) + // Unmarshall the incoming message into an IncomingJSONQuery object JSONQuery, err := query.UnmarshalJSON(&msg.Body) if err != nil {