argoproj / argoproj/argo-workflows
Updated global output value not available in failure hook
- Dominant language
- Go
- Stars
- 17k
- Forks
- 3.7k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 138
Description
### Pre-requisites
- [x] I have double-checked my configuration
- [x] I have tested with the `:latest` image tag (i.e. `quay.io/argoproj/workflow-controller:latest`) and can confirm the issue still exists on `:latest`. If not, I have explained why, **in detail**, in my description below.
- [x] I have searched existing issues and could not find a match for this bug
- [x] I'd like to contribute the fix myself (see [contributing guide](https://github.com/argoproj/argo-workflows/blob/main/docs/CONTRIBUTING.md))
### What happened? What did you expect to happen?
Updating a global output updates the value correctly in the workflow, however, a failure hook sees only the first value assigned to the output.
After running the included output and watching, I get this:
```sh
Name: test-workflow-errors-55fzq
Namespace: argo
ServiceAccount: argo-workflow-sa
Status: Failed
Message: child 'test-workflow-errors-55fzq-1753092456' failed
Conditions:
PodRunning False
Completed True
Created: Mon Jun 16 13:41:26 +0200 (30 seconds ago)
Started: Mon Jun 16 13:41:26 +0200 (30 seconds ago)
Finished: Mon Jun 16 13:41:56 +0200 (now)
Duration: 30 seconds
Progress: 2/3
ResourcesDuration: 9s*(100Mi memory),0s*(1 cpu)
Output Parameters:
error: An error happened in stepB
message:
STEP TEMPLATE PODNAME DURATION MESSAGE
✖ test-workflow-errors-55fzq main child 'test-workflow-errors-55fzq-1753092456' failed
├───✔ stepA no-error test-workflow-errors-55fzq-no-error-1569897868 4s
└───✖ stepB just-error test-workflow-errors-55fzq-just-error-1753092456 4s Error (exit code 1)
```
I expected `message` to have the value "An error happened in stepB", instead it has the value "", which is the first value that get's assigned to it by stepA.
When I do `kubectl get wf/test-workflow-errors-55fzq --output=yaml`, I get in the status section:
```yaml
outputs:
parameters:
- name: error
value: An error happened in stepB
- name: message
value: ""
phase: Failed
```
So the `error` output got effectively changed by stepB, but its value wasn't picked up by the failure hook.
In addition, if I change the supplied workflow to have a continueOn, and a further stepC that does the same thing as the failure hook, the correct value gets picked up:
```yaml
- - name: stepB
template: just-error
continueOn:
failed: true
arguments:
parameters:
- name: id
value: "stepB"
- - name: stepC
template: globalise-message
arguments:
parameters:
- name: message
value: "{{ workflow.outputs.parameters.error }}"
```
### Version(s)
v3.6.7
### Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflow that uses private images.
```YAML
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: test-workflow-errors-
spec:
entrypoint: main
hooks:
failure:
expression: workflow.status == "Failed" || workflow.status == "Error"
template: globalise-message
arguments:
parameters:
- name: message
value: "{{ workflow.outputs.parameters.error }}"
templates:
- name: main
steps:
- - name: stepA
template: no-error
arguments:
parameters:
- name: id
value: "stepA"
- - name: stepB
template: just-error
arguments:
parameters:
- name: id
value: "stepB"
- name: just-error
inputs:
parameters:
- name: id
outputs:
parameters:
- name: error
globalName: error
valueFrom:
path: /tmp/error
script:
image: busybox
command: [sh]
source: |
echo "An error happened in {{ inputs.parameters.id }}" > /tmp/error
exit 1
- name: no-error
inputs:
parameters:
- name: id
outputs:
parameters:
- name: error
globalName: error
valueFrom:
path: /tmp/error
script:
image: busybox
command: [sh]
source: |
touch /tmp/error
exit 0
- name: globalise-message
inputs:
parameters:
- name: message
outputs:
parameters:
- name: message
globalName: message
value: "{{ inputs.parameters.message }}"
container:
image: busybox
command: [sh, -c, exit 0]
```
### Logs from the workflow controller
```text
time="2025-06-16T11:41:26.291Z" level=info msg="Processing workflow" Phase= ResourceVersion=1308713429 namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.298Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=0 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.298Z" level=info msg="Updated phase -> Running" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.298Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.299Z" level=info msg="was unable to obtain node for , letting display name to be nodeName" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.299Z" level=info msg="Steps node test-workflow-errors-55fzq initialized Running" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.299Z" level=info msg="StepGroup node test-workflow-errors-55fzq-1038794339 initialized Running" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.299Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.300Z" level=info msg="Pod node test-workflow-errors-55fzq-1569897868 initialized Pending" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.519Z" level=info msg="Created pod: test-workflow-errors-55fzq[0].stepA (test-workflow-errors-55fzq-no-error-1569897868)" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26Z" level=info msg="add pod event" pod=test-workflow-errors-55fzq-no-error-1569897868
time="2025-06-16T11:41:26.519Z" level=info msg="Workflow step group node test-workflow-errors-55fzq-1038794339 not yet completed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.520Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.520Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-no-error-1569897868
time="2025-06-16T11:41:26.546Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1308713433 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.549Z" level=info msg="Processing workflow" Phase=Running ResourceVersion=1308713433 namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.550Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=0 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.550Z" level=info msg="node changed" namespace=argo new.message= new.phase=Pending new.progress=0/1 nodeID=test-workflow-errors-55fzq-1569897868 old.message= old.phase=Pending old.progress=0/1 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.551Z" level=info msg="Workflow step group node test-workflow-errors-55fzq-1038794339 not yet completed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.552Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.552Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-no-error-1569897868
time="2025-06-16T11:41:26.585Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1308713437 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.588Z" level=info msg="Processing workflow" Phase=Running ResourceVersion=1308713437 namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.590Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=0 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.590Z" level=info msg="node changed" namespace=argo new.message=PodInitializing new.phase=Pending new.progress=0/1 nodeID=test-workflow-errors-55fzq-1569897868 old.message= old.phase=Pending old.progress=0/1 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.591Z" level=info msg="Workflow step group node test-workflow-errors-55fzq-1038794339 not yet completed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.591Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.591Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.602Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1308713438 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.605Z" level=info msg="Processing workflow" Phase=Running ResourceVersion=1308713438 namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.606Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=0 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.606Z" level=info msg="node unchanged" namespace=argo nodeID=test-workflow-errors-55fzq-1569897868
workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.607Z" level=info msg="Workflow step group node test-workflow-errors-55fzq-1038794339 not yet completed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.607Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:26.607Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:28Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-no-error-1569897868
time="2025-06-16T11:41:29Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-no-error-1569897868
time="2025-06-16T11:41:31Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-no-error-1569897868
time="2025-06-16T11:41:32Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-no-error-1569897868
time="2025-06-16T11:41:36.521Z" level=info msg="Processing workflow" Phase=Running ResourceVersion=1308713438 namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.522Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=1 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.522Z" level=info msg="task-result changed" namespace=argo nodeID=test-workflow-errors-55fzq-1569897868 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.522Z" level=info msg="node changed" namespace=argo new.message= new.phase=Succeeded new.progress=0/1 nodeID=test-workflow-errors-55fzq-1569897868 old.message=PodInitializing old.phase=Pending old.progress=0/1 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.522Z" level=info msg="setting workflow.outputs.parameters.error: ''" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.523Z" level=info msg="Step group node test-workflow-errors-55fzq-1038794339 successful" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.523Z" level=info msg="node test-workflow-errors-55fzq-1038794339 phase Running -> Succeeded" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.523Z" level=info msg="node test-workflow-errors-55fzq-1038794339 finished: 2025-06-16 11:41:36.523092792 +0000 UTC" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.523Z" level=info msg="StepGroup node test-workflow-errors-55fzq-1106051910 initialized Running" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.523Z" level=info msg="SG Outbound nodes of test-workflow-errors-55fzq-1569897868 are [test-workflow-errors-55fzq-1569897868]" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.523Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.523Z" level=info msg="Pod node test-workflow-errors-55fzq-1753092456 initialized Pending" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36Z" level=info msg="add pod event" pod=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:36.583Z" level=info msg="Created pod: test-workflow-errors-55fzq[1].stepB (test-workflow-errors-55fzq-just-error-1753092456)" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.583Z" level=info msg="Workflow step group node test-workflow-errors-55fzq-1106051910 not yet completed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.584Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36.584Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:36.611Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1308713569 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:36Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:38Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:39Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:41Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:42Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:46.585Z" level=info msg="Processing workflow" Phase=Running ResourceVersion=1308713569 namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.586Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=2 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.586Z" level=info msg="task-result changed" namespace=argo nodeID=test-workflow-errors-55fzq-1753092456 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.586Z" level=info msg="Pod failed: Error (exit code 1)" displayName=stepB namespace=argo pod=test-workflow-errors-55fzq-just-error-1753092456 templateName=just-error workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.587Z" level=info msg="node changed" namespace=argo new.message="Error (exit code 1)" new.phase=Failed new.progress=0/1 nodeID=test-workflow-errors-55fzq-1753092456 old.message= old.phase=Pending old.progress=0/1 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.587Z" level=info msg="overwriting workflow.outputs.parameters.error: '' -> 'An error happened in stepB'" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.587Z" level=info msg="node unchanged" namespace=argo nodeID=test-workflow-errors-55fzq-1569897868
workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.587Z" level=info msg="SG Outbound nodes of test-workflow-errors-55fzq-1569897868 are [test-workflow-errors-55fzq-1569897868]" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="Step group node test-workflow-errors-55fzq-1106051910 deemed failed: child 'test-workflow-errors-55fzq-1753092456' failed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="node test-workflow-errors-55fzq-1106051910 phase Running -> Failed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="node test-workflow-errors-55fzq-1106051910 message: child 'test-workflow-errors-55fzq-1753092456' failed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="node test-workflow-errors-55fzq-1106051910 finished: 2025-06-16 11:41:46.588106963 +0000 UTC" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="step group test-workflow-errors-55fzq-1106051910 was unsuccessful: child 'test-workflow-errors-55fzq-1753092456' failed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="Outbound nodes of test-workflow-errors-55fzq-1753092456 is [test-workflow-errors-55fzq-1753092456]" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="Outbound nodes of test-workflow-errors-55fzq is [test-workflow-errors-55fzq-1753092456]" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="node test-workflow-errors-55fzq phase Running -> Failed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="node test-workflow-errors-55fzq message: child 'test-workflow-errors-55fzq-1753092456' failed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="node test-workflow-errors-55fzq finished: 2025-06-16 11:41:46.58840431 +0000 UTC" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="Running workflow level hooks" lifeCycleHook=failure namespace=argo node=test-workflow-errors-55fzq.hooks.failure workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="was unable to obtain node for , letting display name to be nodeName" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=info msg="Pod node test-workflow-errors-55fzq-3417895077 initialized Pending" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.588Z" level=warning msg="couldn't get boundaryTemplate through nodeName test-workflow-errors-55fzq.hooks.failure" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46Z" level=info msg="add pod event" pod=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:46.623Z" level=info msg="Created pod: test-workflow-errors-55fzq.hooks.failure (test-workflow-errors-55fzq-globalise-message-3417895077)" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.623Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.623Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:46.646Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1308713698 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.652Z" level=info msg="Processing workflow" Phase=Running ResourceVersion=1308713698 namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.655Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=2 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.657Z" level=info msg="node unchanged" namespace=argo nodeID=test-workflow-errors-55fzq-1569897868
workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.657Z" level=info msg="Pod failed: Error (exit code 1)" displayName=stepB namespace=argo pod=test-workflow-errors-55fzq-just-error-1753092456 templateName=just-error workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.657Z" level=info msg="node unchanged" namespace=argo nodeID=test-workflow-errors-55fzq-1753092456
workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.657Z" level=info msg="node changed" namespace=argo new.message= new.phase=Pending new.progress=0/1 nodeID=test-workflow-errors-55fzq-3417895077 old.message= old.phase=Pending old.progress=0/1 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.658Z" level=info msg="Running workflow level hooks" lifeCycleHook=failure namespace=argo node=test-workflow-errors-55fzq.hooks.failure workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.658Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46.659Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:46Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:46.682Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=1308713702 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:48Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:49Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:51Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:52Z" level=info msg="update pod event" pod=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:56.620Z" level=info msg="Processing workflow" Phase=Running ResourceVersion=1308713702 namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.623Z" level=info msg="Task-result reconciliation" namespace=argo numObjs=3 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.623Z" level=info msg="task-result changed" namespace=argo nodeID=test-workflow-errors-55fzq-3417895077 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.623Z" level=info msg="node changed" namespace=argo new.message= new.phase=Succeeded new.progress=0/1 nodeID=test-workflow-errors-55fzq-3417895077 old.message= old.phase=Pending old.progress=0/1 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.623Z" level=info msg="setting workflow.outputs.parameters.message: ''" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.623Z" level=info msg="node unchanged" namespace=argo nodeID=test-workflow-errors-55fzq-1569897868
workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.623Z" level=info msg="Pod failed: Error (exit code 1)" displayName=stepB namespace=argo pod=test-workflow-errors-55fzq-just-error-1753092456 templateName=just-error workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.623Z" level=info msg="node unchanged" namespace=argo nodeID=test-workflow-errors-55fzq-1753092456
workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.624Z" level=info msg="Running workflow level hooks" lifeCycleHook=failure namespace=argo node=test-workflow-errors-55fzq.hooks.failure workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.624Z" level=info msg="TaskSet Reconciliation" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.624Z" level=info msg=reconcileAgentPod namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.624Z" level=info msg="Updated phase Running -> Failed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.624Z" level=info msg="Updated message -> child 'test-workflow-errors-55fzq-1753092456' failed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.624Z" level=info msg="Marking workflow completed" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.624Z" level=info msg="Marking workflow as pending archiving" namespace=argo workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56.640Z" level=info msg="Workflow update successful" namespace=argo phase=Failed resourceVersion=1308713827 workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56Z" level=info msg="queueing pod for cleanup" action=labelPodCompleted namespace=argo podName=test-workflow-errors-55fzq-no-error-1569897868
time="2025-06-16T11:41:56Z" level=info msg="queueing pod for cleanup" action=labelPodCompleted namespace=argo podName=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:56Z" level=info msg="queueing pod for cleanup" action=labelPodCompleted namespace=argo podName=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:56.658Z" level=info msg="archiving workflow" namespace=argo uid=c74718f8-46c9-4460-a2e8-db794e8831f8
workflow=test-workflow-errors-55fzq
time="2025-06-16T11:41:56Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/test-workflow-errors-55fzq-no-error-1569897868/labelPodCompleted namespace=argo podName=test-workflow-errors-55fzq-no-error-1569897868
time="2025-06-16T11:41:56Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/test-workflow-errors-55fzq-just-error-1753092456/labelPodCompleted namespace=argo podName=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:56Z" level=info msg="cleaning up pod" action=labelPodCompleted key=argo/test-workflow-errors-55fzq-globalise-message-3417895077/labelPodCompleted namespace=argo podName=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:56.700Z" level=info msg="Queueing Failed workflow argo/test-workflow-errors-55fzq for delete in 72h0m0s due to TTL"
time="2025-06-16T11:41:56Z" level=info msg="delete pod event" pod=test-workflow-errors-55fzq-globalise-message-3417895077
time="2025-06-16T11:41:56Z" level=info msg="delete pod event" pod=test-workflow-errors-55fzq-just-error-1753092456
time="2025-06-16T11:41:56Z" level=info msg="delete pod event" pod=test-workflow-errors-55fzq-no-error-1569897868
```
### Logs from in your workflow's wait container
```text
For succeeded and failed steps:
time="2025-06-16T11:41:50.538Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2025-06-16T11:41:50.538Z" level=info msg="Saving output parameters"
time="2025-06-16T11:41:50.538Z" level=info msg="Saving path output parameter: message"
time="2025-06-16T11:41:50.538Z" level=info msg="No output artifacts"
time="2025-06-16T11:41:50.592Z" level=info msg="GCS Save path: /tmp/argo/outputs/logs/main.log, key: test-workflow-errors-55fzq/test-workflow-errors-55fzq-globalise-message-3417895077/main.log"
time="2025-06-16T11:41:50.756Z" level=info msg="Save artifact" artifactName=main-logs duration=164.843723ms error="" key=test-workflow-errors-55fzq/test-workflow-errors-55fzq-globalise-message-3417895077/main.log
time="2025-06-16T11:41:50.756Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2025-06-16T11:41:50.757Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2025-06-16T11:41:50.778Z" level=info msg="Alloc=25889 TotalAlloc=35615 Sys=38997 NumGC=6 Goroutines=10"
time="2025-06-16T11:41:50.785Z" level=info msg="stopping progress monitor (context done)" error="context canceled"
time="2025-06-16T11:41:40.405Z" level=info msg="Saving output parameters"
time="2025-06-16T11:41:40.405Z" level=info msg="Saving path output parameter: error"
time="2025-06-16T11:41:40.405Z" level=info msg="Copying /tmp/error from base image layer"
time="2025-06-16T11:41:40.430Z" level=info msg="Successfully saved output parameter: error"
time="2025-06-16T11:41:40.430Z" level=info msg="No output artifacts"
time="2025-06-16T11:41:40.526Z" level=info msg="GCS Save path: /tmp/argo/outputs/logs/main.log, key: test-workflow-errors-55fzq/test-workflow-errors-55fzq-just-error-1753092456/main.log"
time="2025-06-16T11:41:40.791Z" level=info msg="Save artifact" artifactName=main-logs duration=264.918882ms error="" key=test-workflow-errors-55fzq/test-workflow-errors-55fzq-just-error-1753092456/main.log
time="2025-06-16T11:41:40.791Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2025-06-16T11:41:40.791Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2025-06-16T11:41:40.810Z" level=info msg="Alloc=25934 TotalAlloc=35663 Sys=39253 NumGC=6 Goroutines=10"
time="2025-06-16T11:41:30.283Z" level=info msg="Saving output parameters"
time="2025-06-16T11:41:30.283Z" level=info msg="Saving path output parameter: error"
time="2025-06-16T11:41:30.283Z" level=info msg="Copying /tmp/error from base image layer"
time="2025-06-16T11:41:30.318Z" level=info msg="Successfully saved output parameter: error"
time="2025-06-16T11:41:30.318Z" level=info msg="No output artifacts"
time="2025-06-16T11:41:30.504Z" level=info msg="GCS Save path: /tmp/argo/outputs/logs/main.log, key: test-workflow-errors-55fzq/test-workflow-errors-55fzq-no-error-1569897868/main.log"
time="2025-06-16T11:41:30.792Z" level=info msg="Save artifact" artifactName=main-logs duration=288.926435ms error="" key=test-workflow-errors-55fzq/test-workflow-errors-55fzq-no-error-1569897868/main.log
time="2025-06-16T11:41:30.793Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2025-06-16T11:41:30.793Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2025-06-16T11:41:30.818Z" level=info msg="Alloc=25923 TotalAlloc=35736 Sys=38997 NumGC=6 Goroutines=10"
```
Contributor guide
Research direction
Start by running the minimal workflow in the issue and reviewing the workflow controller logs. Trace how global outputs are updated after stepB fails and how the failure hook receives workflow.outputs.parameters.error; done means the hook sees the updated value and a regression test covers the reproduced workflow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- backend, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100