Lower API impact way of updating NVD Vulnerability Dependency data

The Problem Due to recent changes at NIST and the way they host the NVD DB the dependency-check/DependencyCheck tool that underpins the Azure DevOps OWASP Dependency Check is struggling to download the vulnerabilities DB. This is all discussed in this support thread. The root cause of the problems is a mixture of many updates to the NVD DB, increasing the download size, and tighter throttling of the API. The net-effect of this is that download the NVD DB now takes hours, not minutes, with many timeouts and retries. ...

June 25, 2026 · 2 min · Richard Fennell

Azure DevOps Pipeline cache issue stopping Dependency Check task

The Problem I have posted in the past about caching the National Vulnerability Database (NVD) used by Jeremy Long’s DependencyCheck tool via the associated Azure DevOps task. Today I had an issue that on one pipeline the Azure DevOps task was reporting the following error Starting: Dependency Check ============================================================================== Task : OWASP Dependency Check Description : Dependency Check is a Software Composition Analysis (SCA) tool that attempts to detect publicly disclosed vulnerabilities contained within a project's dependencies. Version : 6.3.0 Author : Dependency Check Help : [More Information](https://github.com/dependency-check/azuredevops) ============================================================================== Starting Dependency Check... Setting report directory to D:\a\1\TestResults\dependency-check Creating report directory at D:\a\1\TestResults\dependency-check Downloading Dependency Check latest installer from GitHub.. Cannot read properties of undefined (reading 'find') ##[error]Cannot read properties of undefined (reading 'find') ##[error]Unhandled error condition detected. Ending Dependency Check... Finishing: Dependency Check The Analysis I tried a few things: ...

June 11, 2026 · 3 min · Richard Fennell

Strange build issue in Azure DevOps Pipelines when MSBuild is running pre-build scripts

The Problem I recently came across a problem with a complex BitTalk solution being built in an Azure DevOps Pipeline. It had been working fine, but it started to fail with error related to failing to copy built DLLs from the obj folder to the bin folder because it said the files were in use by MSBuild. The Analysis I tried a few things, all to little effect: Restarted the self-hosted Azure DevOps Pipeline agent, in case they were holding a lock on a file Delete the builds _work\<number> folder, in case it had become corrupted Re-ran the build against the last Git commit, this worked so at least proving the issue was in a code change and not something to do with the build agent VM. Built the solution locally on a development PC via Visual Studio, it built OK Built the solution using the same, or at least similar (removing the Azure DevOps specific flags) MSBuild command locally on a development PC, and this time I got the same error. So the issue was a recent code changes, but only showed up when using MSBuild directly, but not when letting Visual Studio orchestrate the build process. ...

May 21, 2026 · 2 min · Richard Fennell

Duplicated IP addresses give strange error when deploying Hyper-V environments

Background I have posted in the past on how we manage Azure DevOps Pipeline Agents with Packer and Lability. Whilst deploying a new agent I hit a interesting problem, the issue was completely a ‘UTS’ (user too stupid) error, but the way it was surfaced was I think interesting. The Problem My script built and deployed a new Hyper-V VM, setting up the OS, adding disks and installing the Azure DevOps Pipeline agent. However, the agent did not get registered with Azure DevOps. On checking, I could see that the new VM had a configured network adaptor, but no network connection ...

April 23, 2026 · 2 min · Richard Fennell

Fixing Ribble CGR-Ale (Mahle X35 based) ebike with intermittent power

Background My post-op chemotherapy treatment for my adrenal cancer meant I was struggling to get any fitness, so in 2019 I bought a Ribble CGR-ALe ebike based around the Mahle X35 system. It was in fact pre-ordered prior to the bike’s initial release by Ribble. This bike served me well, getting me out and about before any fitness returned. Since getting fit again, it has also proved useful for my 20KM each-way commute. Allowing me to avoid the traffic jams but still get to work without getting too hot and sweaty. ...

April 20, 2026 · 5 min · Richard Fennell

Migrating Azure WebApps from Docker Compose to Sidecar

Background We have a few non-critical systems running as single instance Docker containers hosted on Azure WebApps. On these systems we have started to see the warning Your app is configured with Docker Compose, which is set to retire on March 31, 2027. For multi-container support, please update your app to support sidecar containers. So, best to get ahead of the game I looked into how to update them, factoring in that ours are all BICEP defined and deployed with Azure DevOps Pipelines ...

April 16, 2026 · 2 min · Richard Fennell

Options for Migrating DevOps Toolsets

Whilst presenting on ‘Migrating DevOps Toolsets’ at DDDNorth 2026 last weekend, I mentioned a blog post & flowchart I had created a few years ago to guide people through their options when migrating from what was then called TFS (Azure DevOps Server) to what was then called VSTS (Azure DevOps Services) When I got home, I thought that this old post & flowchart were worth bringing up to date. So, I also took the chance to make them a little more generic, making them more useful as a guide for a wider range of DevOps toolset migrations, not just Azure DevOps. ...

March 3, 2026 · 2 min · Richard Fennell

Unexpected 'task is dependent on a Node version that is end-of-life' warning with Azure DevOps Pipelines

Background I have been doing the regular maintenance in our Azure DevOps Pipelines of updating the versions of tasks. This usually means you perform one of the following actions Just increment the major version number in the YAML e.g task: MyTask@1 to task: MyTask@2 when there is a newer version of a task available. If the task is out of support and abandoned, swap to a different task, one that is still being supported, that does the same action. Fork the out of date task, and perform the updates to bring it back into support. Swap to a PowerShell/Bash script that wrappers a CLI tool to do the same action - increasingly my go to solution. It is a shame the first option is often not possible, but don’t get me, or other MVPs on the long running subject of abandoned insecure Azure DevOps extensions ...

February 18, 2026 · 3 min · Richard Fennell

Caught out again by the cache in a build pipeline

I have posted in the past about the issues a misconfigured cache can have in Azure DevOps Pipelines, or GitHub Actions. Well it caught me out again today, wasting a few hours of my time. Today, I had a failing integration test in a CI/CD pipeline, but all the tests passed locally. The failing test was looking for a certain number of rows returned from a API with known seed test data. I had revised the seed data and my test, but in my CI/CD pipeline my test was failing as it was still looking for the old number of rows. ...

February 16, 2026 · 2 min · Richard Fennell

Cannot create a new Azure DevOps Agent Pool on an Azure DevOps Server

The Issue I recently had an issue trying to add a new Azure DevOps Pipeline Agent Pool to an existing Azure DevOps 2022 Server via the Team Project Collection Settings UI. When tried to add the agent pool I got the error Access denied needs Manage permissions to perform this action. For more information, contact the Azure DevOps Server administrator The problem was that I was the Azure DevOps Server administrator ...

January 21, 2026 · 2 min · Richard Fennell