diff --git a/pkg/services/alerting/engine.go b/pkg/services/alerting/engine.go index dd6e88294a8..b99b7506614 100644 --- a/pkg/services/alerting/engine.go +++ b/pkg/services/alerting/engine.go @@ -106,6 +106,13 @@ func (e *Engine) processJob(grafanaCtx context.Context, job *Job) error { done := make(chan struct{}) go func() { + defer func() { + if err := recover(); err != nil { + e.log.Error("Alert Panic", "error", err, "stack", log.Stack(1)) + close(done) + } + }() + e.evalHandler.Eval(evalContext) e.resultHandler.Handle(evalContext) close(done)