Not sure if a bug or a feature

Azure DevOps incoming webhook just won’t fire? Easy (stupid) fix!

This post was most recently updated on May 8th, 2022.

2 min read.

This article documents a simple but annoying fix to an issue with Azure DevOps. In this particular case, an incoming webhook (configured as a service connection) would fail to fire, no matter what.

It turns out that it’s a bug in Azure DevOps – who would have thought :) Luckily, there’s a fairly simple workaround available!

Problem

A colleague was configuring a new pipeline in Azure DevOps. It was supposed to fire based on an external webhook that was defined as a service connection to the project. No matter what he did, it refused to work – but a similar configuration worked in other projects, so we knew that it SHOULD work.

After some googling, he found a solution (well.. you’ll see), and gave me permission to share it (as I found it so annoying and definitely worth documenting!) 😁

Solution

The solution is annoying because it’s not really a solution, but rather a crappy workaround. I’m happy to document any thoughtful workarounds, but this one isn’t that thoughtful. And it’s a bit annoying that Microsoft hasn’t acknowledged this to be a bug – even though it most definitely is one!

I’d hope this worked properly – but bah. we’ll have the workaround.

Anyway – here goes:

Time needed: 30 minutes

How to fix the Azure DevOps pipeline not getting triggered by an incoming webhook?

  1. Copy your pipeline YAML and variables somewhere

    Grab a copy of your whole pipeline and any variables you might have configured. You’ll need them in a moment!

  2. Create a new pipeline

    Next, You’ll need a new pipeline. And when I say “new pipeline”, it really needs to be the whole pipeline – just creating a new YAML file doesn’t work.

    Alternatively, you could create a new pipeline based on the old YAML file.

  3. Paste your YAML and variables to the new pipeline

    Now it’s the time to just paste what you had in the old pipeline, to your new pipeline.

    Make sure it’s 100% the same! I’m showing an example of a super simple configuration that didn’t work in the “old” pipeline configuration but did work in the new one below.


And that’s it. A bit stupid and somewhat frustrating, but you got to do what you got to do, right? :)

Sample

This is the sample YAML we tried.

trigger: none

resources:
 webhooks:
 - webhook: <webhook name> # Make sure the casing here is correct!
   connection: <connection name> # This comes from Service Connections

stages:

- stage: Echo
  displayName: Echo
  jobs:
  - job: Echo
    displayName: Echo
    pool:
     vmImage: ‘ubuntu-latest’
    steps:
    - script: |
      echo “running!”
      displayName: ‘Echo’

References

This one was finally figured out by a colleague of mine (well, now a former one anyway), with whom we were investigating this case – so the credit goes to him. 😃 I just figured this needs to be documented, and there is no way that Microsoft is going to do it, so…

mm
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments