Skip to content

[Bug][azuredevops_go] YAML Syntax Error breaks Pipeline #8838

@techdecline

Description

@techdecline

Search before asking

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

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?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/pluginsThis issue or PR relates to pluginspriority/highThis issue is very importantseverity/p0This bug blocks key user journey and functiontype/bugThis issue is a bug

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions