You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Azure DevOps "Project not found" error status is cleared immediately, so a mistyped or deleted project never shows as an error #304
In BuildMonitor/Providers/AzureDevOps.cs, UpdateRepositoriesAsync does its work inside the lambda it passes to MakeAzureDevOpsRequestAsync. When no project matches the owner, the lambda calls:
SetStatus(ProviderStatus.Error,$"Project '{owner.Name}' not found in organization '{AccountId}'");
and then returns normally. MakeAzureDevOpsRequestAsync then runs:
ClearStatus() resets the provider to OK straight away, so the error never reaches the status bar.
Failure scenario
The user adds an Azure DevOps owner with a typo in the project name, or a project is renamed or deleted. BuildMonitor keeps showing the provider as OK and lists no builds for that owner. The only trace is a Log.Warning line.
Reproduced in a scratch test: an action passed to MakeAzureDevOpsRequestAsync sets ProviderStatus.Error through SetStatus. After the call returns, the provider is OK with an empty message.
Suggested fix
Two options:
Capture foundProject from the lambda, and call SetStatus(Error, ...)afterMakeAzureDevOpsRequestAsync returns.
Have MakeAzureDevOpsRequestAsync call ClearStatus() only when the action didn't set an error itself, for example by recording the status before the call and comparing it afterwards.
Acceptance criteria
With an owner that matches no project, UpdateRepositoriesAsync leaves the provider in ProviderStatus.Error with the "not found" message.
Priority: Medium. A misconfigured or deleted Azure DevOps project fails silently. The provider shows OK with no builds, and the only trace is a log warning.
Area / suggested owner:Providers/AzureDevOps.cs, UpdateRepositoriesAsync / MakeAzureDevOpsRequestAsync (maintainer: matt-edmondson)
Notes: Prefer the first option: return foundProject out of the lambda and set the error after the request wrapper returns. That keeps MakeAzureDevOpsRequestAsync's clear-on-success behaviour simple.
Activity
matt-edmondson commentedon Sep 26, 2026
Triage
Providers/AzureDevOps.cs,UpdateRepositoriesAsync/MakeAzureDevOpsRequestAsync(maintainer: matt-edmondson)foundProjectout of the lambda and set the error after the request wrapper returns. That keepsMakeAzureDevOpsRequestAsync's clear-on-success behaviour simple.Generated by Claude Code