conductor-oss / conductor-oss/conductor
Bug: failureWorkflow marked as FAILED despite completing successfully
- Dominant language
- Java
- Stars
- 32.2k
- Forks
- 1k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 41
Description
**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:
1. Create a workflow A that fails.
2. Configure a `failureWorkflow` B.
3. When A fails, B is triggered as expected.
4. B finishes successfully, but its overall status is sometimes `FAILED` and 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**




Contributor guide
Research direction
No source files or tests are named. Start by reproducing the failureWorkflow scenario on Conductor 3.21.14 with Postgres persistence and queue implementations, then trace how the original workflow failure is propagated to the fallback workflow status. Done means a successfully completed failureWorkflow is consistently reported as COMPLETED with an independent result message.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, postgres
- Domain
- backend, databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100