# Better conditional step controls

**URL:** https://forum.buildkite.community/t/better-conditional-step-controls/2115
**Category:** Features Requests
**Created:** [June 23, 2022, 10:00pm UTC](https://forum.buildkite.community/t/better-conditional-step-controls/2115 "2022-06-23T22:00:11Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![nickofthyme](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.buildkite.community/nickofthyme/32/1072_2.png) [@nickofthyme](https://forum.buildkite.community/u/nickofthyme)
#### Post date: [June 23, 2022, 10:00pm UTC](https://forum.buildkite.community/t/better-conditional-step-controls/2115/1 "2022-06-23T22:00:11Z")

</div>

Coming from GitHub Actions I would expect a predictable way to conditionally run a dependent step.

Something like [`continue_on_failure`](https://buildkite.com/docs/pipelines/wait-step#continuing-on-failure) or more precise control via [`depends_on[0].allow_failure`](https://buildkite.com/docs/pipelines/dependencies#allowing-dependency-failures) works fine in most cases but not for `TIMED_OUT`, `CANCELLED` and possibly others. This is _extremely_ frustrating and non-obvious from its key nor the docs.

What do I see as a solution? Something like the [status check functions](https://docs.github.com/en/actions/learn-github-actions/expressions#status-check-functions) (i.e. `always`, `failure`, `cancelled` and `success`) that are available in the in GitHub actions `if` block. This is clear and undeniable when these steps will run, where `continue_on_failure` leaves room for interpretation. These also have more granular control via the `conclusion` prop (e.g. `steps.demo.conclusion == 'failure'`).

 ![image](https://us1.discourse-cdn.com/flex016/uploads/buildkite1/original/2X/7/7dac0cbcb23d35bf5618d4bfb1d00983c3cd6b8d.png)

---

<div class="post-metadata">

### Author: ![paula](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.buildkite.community/paula/32/954_2.png) [@paula](https://forum.buildkite.community/u/paula)
#### Post date: [June 23, 2022, 11:31pm UTC](https://forum.buildkite.community/t/better-conditional-step-controls/2115/2 "2022-06-23T23:31:02Z")

</div>

Hi! 👋

Interesting … Thank you for your suggestions! We don’t have plans at the moment to do changes around conditionals, but we’ll revise this when we do (you made a good point 🙂).

Best!

---

<div class="post-metadata">

### Author: ![nickofthyme](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.buildkite.community/nickofthyme/32/1072_2.png) [@nickofthyme](https://forum.buildkite.community/u/nickofthyme)
#### Post date: [June 24, 2022, 12:23am UTC](https://forum.buildkite.community/t/better-conditional-step-controls/2115/3 "2022-06-24T00:23:03Z")

</div>

Additional context I found, even attempting to use a `wait` step to wait for the `TIMED_OUT` job fails to run.

 ![image](https://us1.discourse-cdn.com/flex016/uploads/buildkite1/original/2X/5/56e17b2862aaf4623177535061294b7b61ea524f.png)

> Seems to me the “Build will continue even if previous stage fails” message has a VERY strict definition for _failed_ 😞 .
