Skip to content
Latchkey

Azure Pipelines "No agent found in pool ... satisfies demands"

Your job declared a demand (a required capability) that no agent in the target pool advertises. The scheduler cannot match the job to any agent, so it never runs.

What this error means

The job sits unassigned, then fails with No agent found in pool <name> which satisfies the specified demands, listing the demand it could not meet (e.g. a tool name or a custom capability).

Azure DevOps
##[error]No agent found in pool 'Default' which satisfies the specified
demands: docker, Agent.Version -gtVersion 2.200.0

Common causes

A demanded capability no agent has

A demands: entry (e.g. a tool, or Agent.Version) does not match any agent’s advertised capabilities. Self-hosted agents only have the capabilities of the software installed on them.

Targeting the wrong pool

The pool you named has no agents with the needed capability - the right agents live in a different pool, or the pool is empty.

How to fix it

Match demands to real agent capabilities

List only demands the pool’s agents actually advertise, or install the missing capability on the agent.

azure-pipelines.yml
pool:
  name: Default
  demands:
    - docker          # only demand what an agent in this pool has

Inspect and fix agent capabilities

  1. In Project Settings → Agent pools, open an agent and review its Capabilities tab.
  2. Install the missing tool on the agent (capabilities auto-detect on restart), or add a user capability.
  3. Confirm the job targets the pool that actually contains those agents.

How to prevent it

  • Keep demands minimal - only what the job truly needs.
  • Standardize agent images so capabilities are consistent across a pool.
  • Document each pool’s installed tooling so jobs target the right one.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →