diff --git a/workflow/controller/dag.go b/workflow/controller/dag.go index a5fc603fbf54..548bff9c00a3 100644 --- a/workflow/controller/dag.go +++ b/workflow/controller/dag.go @@ -351,6 +351,11 @@ func (woc *wfOperationCtx) executeDAG(ctx context.Context, nodeName string, tmpl return node, err } if outputs != nil { + node, err = woc.wf.GetNodeByName(nodeName) + if err != nil { + woc.log.Errorf("unable to get node by name for %s", nodeName) + return nil, err + } node.Outputs = outputs woc.wf.Status.Nodes.Set(node.ID, *node) } diff --git a/workflow/controller/steps.go b/workflow/controller/steps.go index 181e0d0a7c8f..65bc3fd468db 100644 --- a/workflow/controller/steps.go +++ b/workflow/controller/steps.go @@ -172,6 +172,10 @@ func (woc *wfOperationCtx) executeSteps(ctx context.Context, nodeName string, tm } if outputs != nil { + node, err := woc.wf.GetNodeByName(nodeName) + if err != nil { + return nil, err + } node.Outputs = outputs woc.addOutputsToGlobalScope(node.Outputs) woc.wf.Status.Nodes.Set(node.ID, *node)