A Lakeflow Job graph contains an If/else condition task named check_volume. Two tasks hang off it: load_full depends on the true outcome and load_incremental depends on the false outcome. A fourth task named publish depends on load_full alone, with its Run if condition left at the default. On tonight's run the condition evaluates to false and load_incremental completes successfully. What is the state of load_full, publish and the run as a whole?
- Aload_full is skipped, publish is marked failed because a dependency did not succeed, and the run is reported as failed even though load_incremental finished.
- Bload_full is skipped, publish is skipped because its only dependency did not succeed, and the run is reported as successful because no task failed. Correct
- Cload_full is marked failed because the condition ruled it out, publish is skipped, and the run is reported as failed because a task on the untaken branch carries a failure state.
- Dload_full is skipped, publish still runs because a skipped dependency counts as a success under the default Run if condition, and the run is reported as successful.
Why A is wrong: It is tempting because the default Run if condition does block publish, but a dependency that was skipped produces a skipped task rather than a failed one, and a skipped task does not fail the run.
Why B is correct: The false outcome skips the true branch, the default Run if condition of All succeeded propagates that skip to publish, and a run made up of successful and skipped tasks is reported as successful.
Why C is wrong: This mistakes the untaken branch for an error. A condition task selects a branch, so the branch that was not selected is skipped, and a skipped task is not a failure state.
Why D is wrong: The outcome for the run is right but the mechanism is wrong: All succeeded requires the dependency to have actually succeeded, so a skipped dependency skips publish rather than releasing it.