Search before asking
What happened
The azuredevops_go plugin fails the entire DevLake pipeline when it encounters Azure DevOps builds created by YAML syntax errors. These builds are valid Azure DevOps build records but do not have a usable Timeline, causing timeline parsing to fail and abort the pipeline.
This behavior blocks data ingestion even though the underlying build failure is expected and should be handled gracefully.
What do you expect to happen
The Azure DevOps Go plugin should gracefully handle missing or invalid timelines, for example:
- Skip builds whose timeline response cannot be parsed
- Log a warning instead of failing the pipeline
- Mark the build as failed/incomplete and continue
- Treat timeline collection as best effort, not mandatory
At minimum, timeline parsing errors should be non‑fatal for the overall pipeline.
How to reproduce
Add an Azure DevOps Project to the connection's data scope that contains a pipeline with a YAML error that has been triggered at least once within the selected timeframe. Run the data collection. The data collection job will fail at ado:<scope name>.
This an error description based on the original logs, but refined using AI to strip confidential information and increase readability.
Error running DevLake pipeline
Root cause:
subtask collectApiTimelineRecords ended unexpectedly
Stack (compressed):
- server/services.runPipeline
- core/runner.RunPipeline
- core/runner.RunPluginTask
- core/runner.RunPluginSubTasks
- plugins/azuredevops_go/tasks.CollectRecords
- helpers/pluginhelper/api.(*ApiCollector).Execute
- helpers/pluginhelper/api.(*WorkerScheduler).WaitAsync
Combined errors:
{
error parsing response from <ORG>/<PROJECT>/_apis/build/builds/<BUILD_ID_1>/Timeline?api-version=7.1
=====================
error parsing response from <ORG>/<PROJECT>/_apis/build/builds/<BUILD_ID_2>/Timeline?api-version=7.1
=====================
error parsing response from <ORG>/<PROJECT>/_apis/build/builds/<BUILD_ID_3>/Timeline?api-version=7.1
}
Notes:
- All affected builds failed due to YAML syntax errors in pipeline definitions
- Timeline API responses are empty, malformed, or non-JSON
- Failure of a single timeline causes the entire pipeline to abort
Anything else
No response
Version
v1.0.3-beta10@99376a8
Are you willing to submit PR?
Code of Conduct
Search before asking
What happened
The
azuredevops_goplugin fails the entire DevLake pipeline when it encounters Azure DevOps builds created by YAML syntax errors. These builds are valid Azure DevOps build records but do not have a usable Timeline, causing timeline parsing to fail and abort the pipeline.This behavior blocks data ingestion even though the underlying build failure is expected and should be handled gracefully.
What do you expect to happen
The Azure DevOps Go plugin should gracefully handle missing or invalid timelines, for example:
At minimum, timeline parsing errors should be non‑fatal for the overall pipeline.
How to reproduce
Add an Azure DevOps Project to the connection's data scope that contains a pipeline with a YAML error that has been triggered at least once within the selected timeframe. Run the data collection. The data collection job will fail at
ado:<scope name>.This an error description based on the original logs, but refined using AI to strip confidential information and increase readability.
Anything else
No response
Version
v1.0.3-beta10@99376a8
Are you willing to submit PR?
Code of Conduct