---
title: "Skipped jobs in Azure DevOps pipeline | Twyzer"
description: "Why a downstream Azure DevOps job without a condition is still skipped when an upstream job is skipped, and how an explicit condition fixes it."
url: "https://twyzer.nl/blogs/skipped_jobs_in_azure_devops_pipeline/"
language: "nl-NL"
---

Blog

# Skipped jobs in Azure DevOps pipeline

Technologie13 januari 2026

![Portret van Marco Voorwinden, Engineer bij Twyzer](https://twyzer.nl/media/uploads/2026/07/1Y1A6115-e1786612443286.jpg?width=200 "Marco Voorwinden")

Geschreven door

Marco Voorwinden - Engineer

Recently I stumbled upon a skipped job in my Azure DevOps pipeline, while there was no condition that could explain this. It took me quite some headache to find out what the reason was, so I’ll describe my search for the solution in this blog.

![Ontwikkelaar aan een bureau met meerdere schermen vol code](https://twyzer.nl/media/uploads/2026/07/1Y1A6887.jpg?width=1200 "Programmeren op meerdere schermen")

![](https://twyzer.nl/static/gradient.jpg)

## Situation

To explain my problem, I will use a very simple pipeline, containing a single stage with 4 jobs:

![Azure DevOps pipeline stage with four jobs: JobA and JobC succeeded, JobB and JobD skipped](https://twyzer.nl/media/uploads/2024/08/example.jpg)

JobB depends on JobA, JobC depends on JobB, and JobD depends on JobC.

JobB has a condition that causes this job to be skipped.  
JobC has a condition that it is never skipped.

JobD does not have any condition at all.

Below is the yml file I used for this:

Kopieer

```
pool:  vmImage: ubuntu-latestjobs:- job: JobA  steps:    - script: echo Job A- job: JobB  condition: false  dependsOn: JobA  steps:    - script: echo Job B- job: JobC  condition: true  dependsOn: JobB  steps:    - script: echo Job C- job: JobD  dependsOn: JobC  steps:    - script: echo Job D
```

## Results

My expectation of this pipeline was that jobs A, C, and D would run, because jobD does not have a condition at all.

The actual result is shown in the picture: jobD is skipped. But why?

The reason appears to be that a job without a condition will have an implicit condition **succeeded()**. This condition means: **all** previous jobs must succeed. For some reason a job that is skipped is **not** successful. This means that JobD fails, because one of the upstream jobs is skipped.

## How to fix this

The fix for this problem is relatively easy: add an explicit condition to JobD. For example, check that JobC is successful:

Kopieer

```
condition: succeeded('JobC')
```

## Conclusion

If you expect that a job might be skipped in a dependency tree, always add an explicit condition to downstream jobs.

## Bouw verder op een fundament dat klopt

Je wilt vooruit met data en AI. Maar wel vanuit een omgeving waarop je kunt vertrouwen. Wij helpen je grip te houden, juist wanneer keuzes complex worden. Laten we samen kijken welke stap jouw organisatie nu verder helpt.

[Neem contact met ons op](https://twyzer.nl/contact/)

[Neem contact met ons op](https://twyzer.nl/contact/)

![](https://twyzer.nl/static/pattern.png)![](https://twyzer.nl/static/gradient.jpg)

![Illustratie van servers die verbonden zijn met de cloud](https://twyzer.nl/media/uploads/2026/05/data.png?width=800 "Illustratie data-infrastructuur")

Blogs

## Ook interessant

Gebruik de pijltjestoetsen om door de carousel te navigeren. Gebruik Home en End om naar het begin of einde te gaan.

[![Twee lachende collega's aan een bureau met meerdere schermen](https://twyzer.nl/media/uploads/2026/07/1Y1A6548.jpg?width=800 "Grip op retail begint bij data die je kunt vertrouwen")Actueel28 oktober 2026Grip op retail begint bij data die je kunt vertrouwen](https://twyzer.nl/blogs/betrouwbare-data-retail/)

[![Lachende collega achter een sta-bureau met meerdere schermen vol code](https://twyzer.nl/media/uploads/2026/07/1Y1A6817.jpg?width=800 "Grip op Azure-kosten begint met inzicht en eigenaarschap")Actueel1 oktober 2026Grip op Azure-kosten begint met inzicht en eigenaarschap](https://twyzer.nl/blogs/azure-kosten-beheersen/)

[![Over-de-schouderfoto van een ontwikkelaar die code schrijft op een laptop op een standaard](https://twyzer.nl/media/uploads/2026/07/1Y1A6649.jpg?width=800 "AutoMapper’s Licensing and Security Dilemma")Technologie7 september 2026AutoMapper’s Licensing and Security Dilemma](https://twyzer.nl/blogs/automappers-licensing-and-security-dilemma/)
