DEV Community

Cover image for The NEW Manual Validation Task for Azure DevOps YAML Pipelines Demystified

The NEW Manual Validation Task for Azure DevOps YAML Pipelines Demystified

Davide 'CoderDave' Benvegnù
DevOps Architect @ Microsoft 👨‍💻 • YouTuber @ CoderDave 🎥 • Ex MMA fighter 🥊
・2 min read

With the newly released Manual Validation task you can pause a YAML pipeline mid-stage. This allows you to perform manual or offline activities and then resume (or reject) the run.


As I've mentioned, you can use this new task in a YAML pipeline to pause a run within a stage, typically to perform some manual actions or validations, and then resume/reject the run.

This is especially useful in scenarios where you want to pause a pipeline and validate configuration settings, build package, etc. before moving on to a long-running, compute-intensive job.

When the Manual validation task is activated during a pipeline, it displays a message bar containing a link that opens the Manual validation dialog containing the instructions. After carrying out the manual steps, the administrator or user can choose to resume the run or reject it.


Let's see this in action. We will cover how to configure Azure Pipelines to use it and how to use it.

Here you have the video with the whole demo and explanation.

Link to the video:


Remember that, as I've mentioned in the video, you can use this new approach only in an agentless job of a YAML pipeline. If like in my example you have other jobs already, you would need to add a job with pool: server to make this work.


I wanna know what you think about this feature, so let me know in the comment section below.

Also, check this video over here, where I talk about the differences between Classic and YAML pipelines for both Build and Release.

Like, share and follow me 🚀 for more content:

📽 YouTube
Buy me a coffee
💖 Patreon
🌐 Website
👕 Merch
👦🏻 Facebook page
🐱‍💻 GitHub
👲🏻 Twitter
👴🏻 LinkedIn
🔉 Podcast

Buy Me A Coffee

Discussion (5)

seangwright profile image
Sean G. Wright

Where do you see this manual validation being used when compared to required approvals for environments?

I have yml pipelines setup to move an app through multiple environments of App Services via deployment stages. Each stage after the 'development' environment requires an approval for the DevOps 'Environment' and these approvals can be scoped to specific DevOps users or roles.

The manual validation task is much simpler... 🤔 I'm not sure if I'd use it?

n3wt0n profile image
Davide 'CoderDave' Benvegnù Author

Hey, thanks for the question. In YAML the approvals are pre-deployment, this could be used as a workaround to have post-deployment approvals for example. You deploy, and then you pause the stage with a manual validation task so someone can verify that it works, for example.

Or can be something completely unrelated to deployment. Let’s say you are building an application and as part of the process you have to perform a manual action to a 3rd party system that doesn’t have an API you can use for integration…

This task is designed for all the cases like this in which you don’t want or can’t have an automation taking care of “something”.

And I agree with you, it is much simpler than the deployment approvals, at least in its current form, but at least we have something now 😁

seangwright profile image
Sean G. Wright

I like your example of post-deployment approvals. I had thought about something like this but didn't know how to implement them. I have been using the Environment approval of each stage as a kind of post-deployment approval of the previous stage.

Lots to brainstorm about here 🤔.


koseavase profile image

How to make sure only the notified users should be able to click the Resume button and for other users the button should be disabled.
I found out that any user other than the notified users are able to click the resume button

n3wt0n profile image
Davide 'CoderDave' Benvegnù Author

Unfortunately that is currently not possible. Anyone with the Pipelines permissions can do that.

Not sure if this will be implemented in the future, I can try to find out for you.