We often have to retry upstream steps due to flakey agents, or other intermittent failures. However retrying a step and having it succeed doesn’t result in downstream steps running again with the new success artifacts.
Being able to specify in a step that I want it to re-run on upstream retries would be a huge win for us!
If you have a dependency or wait step, that is not continue-on-failure, so the downstream step didn’t run at all when the upstream failed, then a retry of the upstream would be sufficient to unblock and then run the downstream.
The specific concept of “retry this step if the depended-upon step is retried” it’s not something possible at the moment, but it sounds like a nice feature request. I’m going to pass your comments to our Product team to analyze.
This would be very useful for us as well.
We have one step which launches a job outside of BK and another which waits for a successful completion on a cheaper build agent.
We have an implicit dependency using depends_on.
When rerunning a passed job which launches a process , we also have to manually rerun the dependencies, having this be able to happen automatically would be very useful.
We are also interested in this feature. Main use case is for Playwright, since we have parallel test steps that require a merge step to be run to merge the results of each parallel agent. This merge step as you would expect depends on the parallel test steps but iwth allow_failure: true.
Since I want to run the merge step regardless of if any of the test steps had failures (actually, specifically if they had failures), it ends up passing and then doesn’t get rerun when we click rerun failed. My only work around for this is to manually fail the merge step when there are test failures in the test step so that it gets rerun.
Right now, there’s no way to automatically retry a step just because one of its dependencies was retried. Even with soft_fail, you can retry failed jobs, and the dependent job can pass freely without the allow_dependency_failure:true
But if a job has already passed, there’s no built-in option to retry it—except through the API: Retry a Job.
If you need to allow retries on a passed job, you’d have to use the permit_on_passed: true attribute in the step configuration: Manual Retry Attributes.