Bug: failureWorkflow marked as FAILED despite completing successfully
Describe the bug
I have a main workflow configured with a failureWorkflow. When the main workflow fails, the specified failureWorkflow is triggered correctly. The failureWorkflow completes with status COMPLETED, but it is still marked as FAILED and shows the error message from the main workflow.
This behavior did not happen before — the failureWorkflow used to be marked as COMPLETED when it finished successfully.
Additionally, this issue occurs intermittently — sometimes the failureWorkflow is correctly marked as COMPLETED, and other times it is incorrectly marked as FAILED.
This causes confusion in monitoring and error handling, since fallback workflows that complete successfully are incorrectly reported as failed.
Details Conductor version: 3.21.14 Persistence implementation: Postgres Queue implementation: Postgres Lock: N/A
To Reproduce Steps to reproduce the behavior:
- Create a workflow A that fails.
- Configure a
failureWorkflowB. - When A fails, B is triggered as expected.
- B finishes successfully, but its overall status is sometimes
FAILEDand shows the error message from A, even though all tasks in B completed.
Expected behavior
When a failureWorkflow completes successfully, it should always be marked with status COMPLETED, regardless of the failure reason or message from the original workflow.
The result status of the failureWorkflow should be independent and reflect its actual execution outcome.
Screenshots behaviour issue
Screenshots behaviour expected
I've executed the swf_utils_notify_error isolated, with all completed tasks but stills appears message:
Failed to invoke HTTP task due to: java.lang.Exception: 401 : [no body]'
Seems that can be a bug in HTTP tasks, that marks no body but task is correctly.
This causes confusion in monitoring and error handling, since fallback workflows that complete successfully are incorrectly reported as failed.
Hey @albert-cg thanks for bringing this up! I've added this issue to the roadmap and will share with our engineering team.