SSE: Return error messages instead of 500 on SSE command parse errors (#109480)

fixes #108897

---------

Co-authored-by: Kyle Brandt <kyle@grafana.com>
This commit is contained in:
Ihor Yeromin
2025-09-02 18:00:14 +00:00
committed by GitHub
co-authored by Kyle Brandt
parent 76af73b3f3
commit bdf9583ada
4 changed files with 40 additions and 2 deletions
+19
View File
@@ -75,6 +75,25 @@ func MakeDependencyError(refID, depRefID string) error {
return DependencyError.Build(data)
}
var parsErrStr = "failed to parse expression [{{ .Public.refId }}]: {{.Public.error}}"
var ParseError = errutil.NewBase(
errutil.StatusBadRequest, "sse.parseError").MustTemplate(
parsErrStr,
errutil.WithPublic(parsErrStr))
func MakeParseError(refID string, err error) error {
data := errutil.TemplateData{
Public: map[string]interface{}{
"refId": refID,
"error": err.Error(),
},
Error: err,
}
return ParseError.Build(data)
}
var unexpectedNodeTypeErrString = "expected executable node type but got node type [{{ .Public.nodeType }} for refid [{{ .Public.refId}}]"
var UnexpectedNodeTypeError = errutil.NewBase(