techdecline opened a new issue, #8838:
URL: https://github.com/apache/incubator-devlake/issues/8838

   ### Search before asking
   
   - [x] I had searched in the 
[issues](https://github.com/apache/incubator-devlake/issues?q=is%3Aissue) 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?
   
   - [x] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to