CertSafari
    Databricks Certified Data Engineer Associate· Lessons

    Domain 6 · Lesson 26/33

    Lakeflow Jobs DAG Task Graph: Spotting Upstream Blockers and Slow Tasks

    Use the Lakeflow Jobs UI to monitor pipeline health

    9 min read
    2% of exam
    4 sources
    Published 2 Oct 2026
    Docs as of 30 Sep 2026

    What you will be able to do

    • Open a job run's graph, timeline, and list views and say what each one is for
    • Trace a failed or skipped task back to the upstream task that blocked it
    • Interpret the Upstream failed and Excluded task states produced by Run if conditions
    • Use the run breakdown and timeline view to find where a run's time went

    1.Three views of a single job run

    A job's run history shows that a run went wrong. The job run details page shows where in the run it went wrong. To open it, click Jobs & Pipelines in the sidebar, click the job's name, and then click the start time of a run. The page contains the run's output and links to logs, and it reports whether each task succeeded or failed.

    Jobs with more than one task get three views of the same run:

    - Graph: the DAG of tasks. Click a task node to see its run details: the Run as user, how it was launched, its start time, end time, duration, and status, plus its source code, the cluster it ran on (with links to query history and logs), and task metrics. - Timeline: shows which tasks took a long time and how tasks depended on and overlapped one another. - List: one row per task. By default it shows status, name, type, resource, duration, and dependencies. You can search by name, filter by status or type, and sort by status, name, or duration.

    Checkpoint 1 of 5· Check yourself

    A 40-task job ran slowly and you want to know which tasks took the longest. Which view, used as described in the documentation, ranks them most directly?

    Sources1

    2.Reading the DAG to find upstream blockers

    Each line in the job DAG is a dependency. Databricks runs upstream tasks before downstream ones and runs as many tasks in parallel as it can. This means one failure near the top of the graph can stop everything below it. A task can be unsuccessful because it failed itself, or because it was skipped after a task it depends on failed. When you see a red or skipped task, first check whether it actually caused the problem or was only affected by it.

    What happens downstream depends on each task's Run if condition. The default is All succeeded.

    Run if conditions and the state a task gets when its condition is not met
    Run if conditionRuns whenState if unmet
    All succeeded (default)All dependencies ran and succeededUpstream failed
    At least one succeededAt least one dependency succeededUpstream failed
    None failedNo dependency failed and at least one ranUpstream failed
    All doneAll dependencies have run, whatever their outcomeNot applicable: always runs
    At least one failedAt least one dependency failedExcluded
    All failedAll dependencies failedExcluded

    When you trace a blocker back through the graph, three rules matter:

    1. Upstream failed and Upstream canceled count as *failed*, not skipped, when a further downstream task checks its own Run if condition. The failure keeps propagating down the graph. 2. Excluded counts as *successful*. Tasks marked Excluded are usually failure handlers whose condition was not met, and an excluded task is skipped. If all of a task's dependencies are excluded, that task is excluded too, so exclusion cascades along a linear chain. 3. Cancellation propagates. If you cancel a task run, the cancellation passes to downstream tasks, but tasks whose Run if handles failure still run. This lets a cleanup task run after a cancellation.

    The blocker is not always inside the job. Sometimes the cause is upstream of the job itself, for example an external data source that is unavailable.

    Checkpoint 2 of 5· Put it in order

    You have been told that a job run failed. Put these steps for finding the cause in the Lakeflow Jobs UI in order.

    1. 1.Click the job name to open its Runs tab and matrix view
    2. 2.Hover over the failed task to see its metadata
    3. 3.Click the failed task to open the Task run details page with its output and error message
    4. 4.Click Jobs & Pipelines in the sidebar

    Checkpoint 3 of 5· Exam question

    A data engineer wants to quickly see whether a job's failure rate has been increasing over the past two weeks without opening each individual run. Which Lakeflow Jobs UI view is best suited to this, and why?

    Sources23

    3.Tracking where a run's time went

    A run can be slow without failing. The Jobs UI gives you two tools to find out why. The timeline view shows which tasks ran long and where tasks overlapped. For serverless jobs, the timeline also includes each task's queries and links to their query profiles. The run breakdown splits the run's total time into phases. On the job run details page, hover over the run's Duration to see it.

    Run breakdown phases and what a large value suggests
    PhaseA large value suggests
    QueuedWaiting because of concurrency limits: the job's maximum concurrent runs or the workspace-level limit
    Waiting for resourcesWaiting for compute to become available
    Library installationTime spent installing libraries before the run starts
    RunningThe work itself: more data, configuration changes, or slower code

    The breakdown is available for both job runs and task runs. In a multi-task job, the job-level breakdown counts Waiting for resources only until the first task starts. For the full picture of each task, open that task's own breakdown. If Running is the largest phase, the run may simply have processed more data, which can be expected. To check for configuration or code changes, review recent changes in the jobs and compute system tables.

    Duration also needs care when a run has been repaired. In the Runs tab, a repaired run's Duration covers the time from the first attempt's start to the latest repair's finish. A run that failed twice and then succeeded therefore shows the combined time of all three attempts. Do not take that number as the time one run takes.

    Checkpoint 4 of 5· Check yourself

    A multi-task job run failed, was repaired, and then succeeded. Its Duration in the Runs tab is much higher than usual. What is the most likely explanation?

    Checkpoint 5 of 5· Exam question

    A pipeline job that normally completes in about 12 minutes has been taking over 40 minutes for the last three runs, though it still finishes with a Succeeded status each time. Using only the Lakeflow Jobs UI, how can the engineer confirm this is an unusual trend rather than normal variance?

    Sources14

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 1.A downstream task marked Upstream failed is treated like a skipped task, so tasks further downstream can still run normally.Why is that wrong?

      Upstream failed and Upstream canceled count as failed when Run if conditions are checked, so the failure keeps propagating.

      Covered in Reading the DAG to find upstream blockers

    2. 2.Every red or skipped task in a run has its own error to investigate.Why is that wrong?

      A task can be unsuccessful only because a task it depends on failed. Trace back through the DAG to the task that failed first.

      Covered in Reading the DAG to find upstream blockers

    3. 3.A repaired run's Duration in the Runs tab is the time taken by the final, successful attempt.Why is that wrong?

      Duration runs from the first attempt's start to the latest repair's finish, so it includes every attempt.

      Covered in Tracking where a run's time went

    Sources

    Every claim above is drawn from one of these pages, quoted as it was written on the date shown.

    1. 1.
      “Jobs with multiple tasks additionally have a graph, timeline, and list view.”
      ↩︎ Three views of a single job run
      “Click a task node in the graph to view task run details, including:”
      ↩︎ Three views of a single job run
      “By default, the list view shows the status, name, type, resource, duration, and dependencies.”
      ↩︎ Three views of a single job run
      “Jobs that contain multiple tasks have a timeline view to identify tasks that are taking a long time to complete”
      ↩︎ Tracking where a run's time went
      “You can search for a task by name, filter by task status or task type, and sort tasks by status, name, or duration.”
      ↩︎ Checkpoint
    2. 2.
      “Dependencies are visually represented in the job DAG as lines between tasks.”
      ↩︎ Reading the DAG to find upstream blockers
      “Databricks runs upstream tasks before running downstream tasks, running as many of them in parallel as possible.”
      ↩︎ Reading the DAG to find upstream blockers
      “Upstream tasks with the Excluded result state are treated as successful when evaluating Run if conditions.”
      ↩︎ Reading the DAG to find upstream blockers
      “This exclusion cascades along a linear dependency chain.”
      ↩︎ Reading the DAG to find upstream blockers
      “If you cancel a task run, the cancellation propagates through downstream tasks”
      ↩︎ Reading the DAG to find upstream blockers
      “Upstream tasks marked Upstream failed or Upstream canceled are treated as failed, not as skipped.”
      ↩︎ Exam trap 1
      “This is the default setting. The task is marked as Upstream failed if the condition is unmet.”
      ↩︎ Prediction
    3. 3.
      “In some cases, the cause of a failure may be upstream from your job; for example, an external data source is unavailable.”
      ↩︎ Reading the DAG to find upstream blockers
      “Hover over a failed task to see associated metadata.”
      ↩︎ Reading the DAG to find upstream blockers
      “A task run may be unsuccessful because it failed or was skipped because a dependent task failed.”
      ↩︎ Exam trap 2
      “includes the time the first run started until the time when the latest repair run finished.”
      ↩︎ Exam trap 3
      “To help identify the cause of the failure, click the failed task.”
      ↩︎ Checkpoint
      “includes the time the first run started until the time when the latest repair run finished.”
      ↩︎ Checkpoint
    4. 4.
      “hover over the run's Duration to see the total duration broken down into the following phases:”
      ↩︎ Tracking where a run's time went
      “the job-level breakdown counts Waiting for resources only until the first task starts running.”
      ↩︎ Tracking where a run's time went
      “Your job or task is waiting to start because of concurrency limits.”
      ↩︎ Tracking where a run's time went
      “Data volume increased, so a longer runtime might be expected.”
      ↩︎ Tracking where a run's time went
      “Review recent changes using Databricks system tables, such as the jobs system tables and compute system tables.”
      ↩︎ Tracking where a run's time went

    Ready to test yourself?

    Practise the 8 questions on this subdomain.

    Spotted a mistake, or was something unclear? Tell us.