Share via

#MDP I'm using Managed devops pool in my pipeline to deploy the code into azure App service, But the MDP is not assigning any agent even after 45 minutes and pipeline is failing. I have check everything from networking to permission. it looks good.

Sandeep SV 11 Reputation points
2026-05-01T16:12:35.3666667+00:00

#MDP I'm using Managed devops pool in my pipeline to deploy the code into azure App service, But the MDP is not assigning any agent even after 45 minutes and pipeline is failing. I have check everything from networking to permission. it looks good.

Azure DevOps
0 comments No comments

2 answers

Sort by: Most helpful
  1. Rakesh Mishra 8,420 Reputation points Microsoft External Staff Moderator
    2026-05-01T16:47:01.0666667+00:00

    Hey Sandeep,

    If your pipeline is queuing indefinitely using a Managed DevOps Pool (MDP), it typically means the pool is either unable to provision the agents or is restricted by concurrency limits. Since MDP is a fully managed service, the underlying VMs are abstracted and you will not see a VM Scale Set in your resource group to troubleshoot.

    Below are the specific areas to investigate to resolve this.

    1. Verify Self-Hosted Parallel Jobs and Maximum Agents: Azure DevOps treats MDP agents as self-hosted agents, which requires sufficient concurrency licensing.
      • Check your Azure DevOps organization settings to ensure you have available self-hosted parallel jobs. If this limit is at 0 or fully consumed, jobs queue indefinitely.
      • In the Azure Portal, review your Managed DevOps Pool's Maximum agents setting under Settings > Pool. If the limit specified here is already running, new pipelines must wait.
    2. Validate Virtual Network and RBAC Permissions: If your pool is attached to a custom virtual network, network access misconfigurations will silently block agent provisioning. You must verify that:
      • The target subnet has been successfully delegated to Microsoft.DevOpsInfrastructure/pools.
      • The DevOpsInfrastructure service principal has been explicitly assigned the Reader and Network Contributor roles on your virtual network. Without these, the service cannot inject agents into your VNet.
    3. Check Standby Agent Configurations: If Standby agent mode is turned off, MDP provisions agents entirely on-demand. While usually fast, fetching a fresh image can sometimes take up to 15 minutes. If you are using a custom image, verify that recent image updates haven't introduced an initialization failure.
    4. Review Provisioning Logs via Azure Monitor: Since you cannot access the raw VM instances, the best way to uncover silent failures is through the diagnostic logs. On your Managed DevOps Pool resource in the Azure Portal, go to Monitoring > Diagnostic settings, and route the Resource Provisioning Logs to a Log Analytics workspace. This will expose the exact scaling or provisioning errors blocking your agents.

    If above troubleshooting does not help, please check below questions and share findings in comments.

    1. Could you share the full agent assignment error or pipeline logs?
    2. Which agent pool and region are you targeting, and is it a Microsoft-hosted or self-hosted pool?
    3. Can you post the relevant section of your pipeline YAML or the UI settings where you configured the MDP?

    References:

    Note: This response is drafted with the help of AI systems.


  2. Q&A Assist
    2026-05-01T16:13:09.7466667+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    Use the following checks and adjustments to resolve a Managed DevOps Pool (MDP) pipeline that waits a long time for an agent and then fails:

    1. Verify self-hosted parallel jobs capacity Managed DevOps Pools agents are treated as self-hosted agents by Azure DevOps. If the organization’s self-hosted parallel jobs limit is reached, new jobs stay queued even if MDP can provision agents.
    • Check the self-hosted parallel jobs count and current usage.
    • If the workload needs more concurrent jobs than the current limit, increase the self-hosted parallel jobs capacity. For details, see Configure and pay for parallel jobs.
    1. Check the pool’s Maximum agents setting If Maximum agents is set too low, MDP will not start more agents even if jobs are queued.
    • Open the Managed DevOps Pool configuration.
    • Confirm Maximum agents is high enough for the expected concurrency.
    • Remember that Maximum agents is separate from the Azure DevOps self-hosted parallel jobs limit; both must allow the desired concurrency.
    1. Confirm agents are actually being created and are not all in use If all available agents are busy, jobs wait.
    • Go to https://dev.azure.com/{org}/_settings/agentpools.
    • Select the pool used by the pipeline and open Agents.
    • Check whether agents are online and whether all are currently running jobs.
    • If needed, increase the number of agents (via MDP settings) or reduce concurrent pipelines.
    1. Check demands vs capabilities If the pipeline specifies demands that do not match any agent capabilities, the job never gets an agent.
    • Review the pipeline’s demands (e.g., demands in YAML or UI).
    • Compare them with the agent capabilities shown in the pool’s Agents page.
    • Remove or correct any demands that do not match the capabilities of the MDP agents.
    1. Address delays in agent startup Even with correct networking and permissions, MDP can take time to start agents, especially without standby or historical data.
    • If Standby agent mode is disabled, agents are started on demand and can take up to ~15 minutes to be ready.
    • For new pools (no historical usage), automatic standby may not pre-provision correctly. For the first month, switch to manual standby mode and configure a schedule and standby count that matches peak usage.
    • If using multiple images (for example, Windows and Ubuntu), adjust the Standby agent percentage per image to match actual usage (for example, 75% Windows if 75% of jobs use Windows).
    1. Consider stateful pools with a grace period If workloads arrive in bursts, use stateful pools with a short grace period so agents stay online briefly after jobs complete, reducing startup delays.
    • Configure the pool as a stateful pool.
    • Set a grace period long enough to cover typical gaps between jobs but short enough to control cost.
    1. Check for agent assignment time-out error codes If the job fails with a timeout, inspect the error code in the MDP monitoring view.
    • Open the Managed DevOps Pool Overview page.
    • Check the Error codes chart and look up the code in the documented error codes section.
    • Use that specific code to guide further troubleshooting.
    1. Validate outbound connectivity (even if it appears correct) If outbound endpoints are partially blocked, agents may never fully come online.
    • Ensure the required endpoints for MDP and Azure DevOps are allowed (for example, *.prod.manageddevops.microsoft.com, rmprodbuilds.azureedge.net, *.queue.core.windows.net, download.agent.dev.azure.com, dev.azure.com).

    If, after these checks, the pool still never assigns an agent and jobs consistently time out, collect the error code from the MDP Overview page and the agent pool status from Azure DevOps, then use those details to open a support case.


    References:

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.