Azure Pipelines "The task X is ambiguous"
Two installed tasks share the same name, so the agent cannot decide which one you meant. Azure asks you to disambiguate by the fully qualified task identifier (GUID or publisher-qualified name).
What this error means
The run fails at task resolution with The task <name> is ambiguous. Specify one of the following identifiers to resolve the ambiguity, listing the candidate task IDs.
##[error]The task 'PublishTestResults' is ambiguous. Specify one of the
following identifiers to resolve the ambiguity:
'0b0f01b2-...:PublishTestResults', 'a1b2c3d4-...:PublishTestResults'Common causes
Two extensions provide the same task name
A Marketplace extension ships a task whose name collides with a built-in task (or another extension). With both installed, the short name is ambiguous.
Referencing by name only
Using the bare task name works until a collision exists. Once two definitions match, Azure refuses to guess.
How to fix it
Reference the task by its GUID
Use the fully qualified identifier from the error to pin exactly which task runs.
steps:
- task: 0b0f01b2-f5da-...@2 # the GUID from the ambiguity message
inputs:
testResultsFiles: '**/junit.xml'Remove the conflicting extension
- Identify which extension introduced the duplicate task name.
- If it is unused, have an org admin uninstall it to remove the collision.
- Otherwise keep referencing the intended task by GUID everywhere.
How to prevent it
- Audit installed Marketplace extensions for task-name collisions.
- Pin colliding tasks by GUID in shared templates.
- Avoid installing redundant extensions that duplicate built-in tasks.