An automation set to run on Both (Person and Contract) shares one workflow,
but each individual run carries just one subject — a person, or a contract.
Until now, reaching a step that could only apply to the other kind ended the
run then and there: the run was marked failed, and every step after it never
happened.
That had a second, quieter cost. The run was recorded as a failure that never
really happened: it counted against the automation’s failure numbers, and the
record came out of it marked cancelled rather than finished. Where such an
automation ran as a step inside another one, the parent was left waiting on a
child that would never report back.
Now the step is recorded as skipped — visible as such in the run’s
execution details — and the run continues through its remaining steps and
finishes normally. A step that has nothing to do for this subject is not an
error.
Nothing changes for automations that run on People only or Contracts only: a
step that doesn’t fit there is a real misconfiguration and still fails loudly,
as does a step referring to an action that no longer exists.