From 42cb2d2dcc22df273d4e2b443362d43b548382e4 Mon Sep 17 00:00:00 2001 From: matt Date: Mon, 21 Jul 2025 14:41:36 -0400 Subject: [PATCH] fix: return 404 from a few populators (#2031) --- api/v1/server/middleware/populator/populator.go | 4 ++++ api/v1/server/run/run.go | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/api/v1/server/middleware/populator/populator.go b/api/v1/server/middleware/populator/populator.go index afde4471d..ebf614692 100644 --- a/api/v1/server/middleware/populator/populator.go +++ b/api/v1/server/middleware/populator/populator.go @@ -120,6 +120,10 @@ func (p *Populator) traverseNode(c echo.Context, node *resource) error { err := p.callGetter(node, node.ParentID, node.ResourceID) if err != nil { + if httpErr, ok := err.(*echo.HTTPError); ok { + return httpErr + } + return fmt.Errorf("could not populate resource %s: %w", node.ResourceKey, err) } diff --git a/api/v1/server/run/run.go b/api/v1/server/run/run.go index 0eef81021..7bfdb5a5b 100644 --- a/api/v1/server/run/run.go +++ b/api/v1/server/run/run.go @@ -301,7 +301,7 @@ func (t *APIServer) registerSpec(g *echo.Group, spec *openapi3.T) (*populator.Po } if scheduled == nil { - return nil, "", fmt.Errorf("scheduled workflow run not found") + return nil, "", echo.NewHTTPError(http.StatusNotFound, "scheduled workflow run not found") } return scheduled, sqlchelpers.UUIDToStr(scheduled.TenantId), nil @@ -315,7 +315,7 @@ func (t *APIServer) registerSpec(g *echo.Group, spec *openapi3.T) (*populator.Po } if scheduled == nil { - return nil, "", fmt.Errorf("cron workflow not found") + return nil, "", echo.NewHTTPError(http.StatusNotFound, "cron workflow not found") } return scheduled, sqlchelpers.UUIDToStr(scheduled.TenantId), nil @@ -381,7 +381,7 @@ func (t *APIServer) registerSpec(g *echo.Group, spec *openapi3.T) (*populator.Po } if task == nil { - return nil, "", fmt.Errorf("task not found") + return nil, "", echo.NewHTTPError(http.StatusNotFound, "task not found") } return task, sqlchelpers.UUIDToStr(task.TenantID), nil