Running manual job does not trigger downstream dependent

I have a CI pipeline with one job that is manual, followed by two dependent jobs. Lets say:

A(auto) → B(man) → C(auto) → D(auto)

When I start B, C changes from skipped to waiting, and runs when B completes, but D stays as skipped until I rerun C, then D runs too.

How do I get D to change from skipped to waiting when I run B, so I don’t need to run C twice? Do I need to add needs: [B] to D?