Need for additional flow control (shortcomings with "run if dependencies")
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-30-2026 10:46 AM
Maybe there is a way to do this that my team can't figure out but we have a process that kind of looks like this:
The main focus of this job1 and job2 but in theory let's extend this issue to any number of linear jobs. So the idea behind this is:
- job2 depends on job1 but only if job1 runs
- if job1 doesn't run, job2 can still run (imagine job1 is a long process and we may have already run it in a different run, so we want to set the conditional to turn it off, but we want to turn the conditional on for job2 to run; this is a simple example, assume there are other cases where one might do this).
- job2 can also optionally be turned off
So we've been trying a few different things but it seems like none of the offered "run if dependencies" allow us to do what is described above (without maybe adding another conditional that I'm working on testing next). Below are the examples where it breaks down:
Job2 uses all_succeeded "run if": Job1_cond_false + job2_cond_true = job2 doesn't run ❌ (should run because job2 condition is true)
Job2 uses at least one success "run if": Job1 success + job2_cond_false = job 2 runs ❌ (shouldn't run because job2 condition is set to false)
Job2 uses None failed "run if": Job1 success + job2_cond_false = job 2 runs ❌ (shouldn't run because job2 condition is set to false)
This last one is most interesting because when a conditional outputs false, it fails for an all_succeeded "run if", as if the false is not a success. However, when the run if is checking for none_failed and the output is false, it also is not treated as a failure. So it is like the conditional output exists as a different state that is neither success nor failed, but one we can't control for.
---
If you're curious I also tried a linear design like below:
But in this case it doesn't even make it to the job2_cond because despite using "none_failed". It's like excluded does count as a failure. If excluded is a subset of failure, then I think a false conditional output should also be a subset of failure so that none_failed treats it as such.
- Labels:
-
Workflows