Support running jobs (e.g. Slack notification) even if dependencies failed

We’ve followed the official instructions for integrating Slack notification using the official orb:

  • In our workflow, each job has a post-steps action that notifies Slack on failure.
  • We then have a single “fan-in” workflow job, which depends on all the other jobs, and which notifies on success.

Unfortunately, this obviously has a big glaring problem: If multiple jobs fail, Slack messages are spewed all over the place. We are currently in a situation where a single run can result in 6 Slack messages. This obviously isn’t an acceptable solution for a modern CI system. Being able to execute a job regardless of whether its dependencies succeeded or failed should be a trivial thing.

Right now the only possible workaround appears to be to handle errors yourself, then write to a workspace file which you inspect in the final “fan-in” job. This has a big problem, as far as I can see, in that failing jobs will appear to succeed. Which isn’t acceptable, either.

This missing feature has been reported lots of times, with no activity or solution, e.g. here and here.

I’d like this to get some attention. While I know nothing about CircleCI’s internals, it sounds quite trivial to implement.

Hi @atombender, welcome to the CircleCI community! We received your Support ticket and would like to follow-up here as well.

At this time we do not have the ability to support running jobs, even if dependencies failed from a fan-in workflow. We do have an open feature request I shared with you to always run a job even when dependent jobs failed, which would work directly with your use-case. We recommend you comment and vote for our PM’s to view, or submitting a new idea to if there isn’t an existing feature request that fits your needs.

While this wouldn’t apply to a fan-in workflow, a colleague of mine did write a sample configuration file to send a slack notification at the end of a workflow.

Let us know if you have any further questions!