Job if condition not working

I use the following condition on a job:

if: contains(needs.*.result, 'success') && !contains(needs.*.result, 'failure')

With the intention that if at least one of the dependencies succeeded, and none failed, the job would run (skipping all but one dependency is allowed). However I’ve found that unless all dependencies run, the job doesn’t run.

The following link in the docs indicates that you don’t need to have success() in the condition for the job to run: Expressions - GitHub Docs

So, i’m just wondering what I’m doing wrong and how to fix it.