incubator-devlake icon indicating copy to clipboard operation
incubator-devlake copied to clipboard

[Bug][Azure DevOps plugin - Advanced blueprint] Advanced blueprint pipeline run is getting failed when adding subtask collectApiTimelineRecords

Open veetmoradiya3628 opened this issue 5 months ago • 1 comments

Search before asking

  • [x] I had searched in the issues and found no similar issues.

What happened

We're encountering a parsing error in the advanced blueprint mode of the Azure DevOps Go plugin when the subtask collectApiTimelineRecords is included.

Issue: Adding the subtask collectApiTimelineRecords to the advanced blueprint causes a pipeline run to fail with a parsing error.

Impact: The failure prevents the collection of data required for two key DORA metrics: Change Failure Rate and Failed Deployment Recovery. The pipeline succeeds when the subtask is removed, but these metrics remain affected.

Observed Errors:

subtask Collect Workflow Runs ended unexpectedly Wraps: (2) Error waiting for async Collector execution Wraps: (3) task canceled Wraps: (4) context canceled

error preparing task data for azuredevops_go (404) Wraps: (2) fail to find repositors: LMRGW-Magellan/597db64c-aa5d-490a-8794-4229b94ad739-572921733 (404) Wraps: (3) record not found (404) Wraps: (4) record not found

Troubleshooting Note: Attempting to download logs produces an empty .tar file, which is hindering debugging.

Image

What do you expect to happen

It should not fail with parsing errors.

How to reproduce

Try to setup advanced mode blueprint with Azure DevOps Go plugin.

Anything else

No response

Version

apache/devlake:v1.0.3-beta4

Are you willing to submit PR?

  • [x] Yes I am willing to submit a PR!

Code of Conduct

veetmoradiya3628 avatar Oct 13 '25 12:10 veetmoradiya3628

The 404 "record not found" error when adding collectApiTimelineRecords in advanced blueprint mode is triggered when the plugin can't find the specified repository in the database during task preparation. This usually means the repositoryId or related options in your blueprint don't match any existing Azure DevOps repo records in DevLake, or the repo was deleted or not synced yet. The error is raised early in the pipeline, which is why the logs are empty—logging only starts after successful task preparation, so fast-failures like this produce little or no log output for the archive you download. To improve debugging, ensure that all error return paths in plugin initialization log at ERROR level so logs always have diagnostic content, even for early failures.

For your PR, focus on: (1) verifying that the advanced blueprint is passing the correct repositoryId, connectionId, organizationId, and projectId to the pipeline plan, and (2) making sure the plugin logs errors before returning, especially in PrepareTaskData and related routines. You might also want to add more robust error handling for missing or mismatched repo IDs in the advanced blueprint plan construction logic.

If you need to collect DORA metrics, make sure the repository exists in DevLake and the IDs in your blueprint match exactly. If the repo was deleted or renamed in Azure DevOps, re-sync your data sources first.

For more details, see the relevant code in impl.go and blueprint_v200.go.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

dosubot[bot] avatar Oct 13 '25 13:10 dosubot[bot]

This issue has been automatically marked as stale because it has been inactive for 60 days. It will be closed in next 7 days if no further activity occurs.

github-actions[bot] avatar Dec 13 '25 00:12 github-actions[bot]