A Lakeflow Job has four tasks. Task C lists task A and task B as its dependencies, and no Run if condition has been changed from its default anywhere in the job. Task A succeeds, and task B fails on its only attempt because no retries are configured. What happens to task C and to the job run?
- ATask C starts as soon as task A finishes, because a dependency edge fixes the ordering of tasks and does not gate a task on the outcome of the tasks above it.
- BTask C is skipped because the default Run if condition requires every dependency to succeed, and the job run itself is reported as failed rather than as successful. Correct
- CTask C starts once both task A and task B have reached a terminal state, and it receives the failure of task B as an input value that its own code can branch on.
- DTask C fails immediately with the same error that task B raised, so the completed run records two failed tasks alongside the one task that finished successfully.
Why A is wrong: Tempting because a dependency does control ordering, which is the part most candidates remember, but the edge also carries a condition, and the default condition requires success rather than mere completion.
Why B is correct: Correct: the default Run if condition on a task is All succeeded, so a failed dependency leaves task C unexecuted, and a run containing a failed task is recorded as a failed run.
Why C is wrong: This describes the All done condition combined with an If/else style branch, neither of which is in force here, so task C is not offered any outcome value to branch on under the default configuration.
Why D is wrong: Plausible because the run as a whole does fail, but a task that never executes is recorded as skipped rather than failed, and an error from one task is not propagated as the result of another.