Bug Description
The GitHub plugin's release converter crashes with a nil pointer dereference panic when processing certain releases, causing 100% failure rate for all pipelines processing repositories with releases.
Error Details
Error message:
runtime error: invalid memory address or nil pointer dereference
at github.com/apache/incubator-devlake/plugins/github/tasks.ConvertRelease.func1:79
Failure point: Step 30/30 - "Convert Releases" subtask
Root Cause
Commit 794f8ef added a SQL filter to exclude draft releases (published_at IS NOT NULL) but failed to add a defensive nil check before dereferencing the PublishedAt pointer in the converter function at line 79:
PublishedAt: *githubRelease.PublishedAt, // Panic if nil!
Impact
- Severity: Critical
- Affected plugin: github_graphql
- Affected operations: All pipelines processing GitHub repositories with releases
- Failure rate: 100% for affected repositories
- Number of observed failures: 10 pipeline tasks (9243, 9259, 9263, 9267, 9271, 9274, 9295, 9310, 9313, 9322)
Environment
- Version: main branch (after commit 794f8ef)
- OS: macOS (Darwin 24.4.0)
- Date observed: October 31, 2025
Reproduction
- Configure a GitHub connection with repositories that have releases
- Run a pipeline to collect data from those repositories
- Observe the pipeline crash at "Convert Releases" step with nil pointer panic
Expected Behavior
The converter should safely handle releases with nil PublishedAt fields, either by:
- Skipping them gracefully (draft releases)
- Logging a warning about data inconsistency
Proposed Solution
Add a nil check before dereferencing the pointer:
if githubRelease.PublishedAt == nil {
return nil, nil
}
Related
Additional Context
The SQL filter published_at IS NOT NULL was added to exclude draft releases, but in practice, some releases still have nil PublishedAt fields due to:
- Data inconsistency in the database
- GORM scanning issues
- Invalid timestamps that couldn't be parsed
Bug Description
The GitHub plugin's release converter crashes with a nil pointer dereference panic when processing certain releases, causing 100% failure rate for all pipelines processing repositories with releases.
Error Details
Error message:
Failure point: Step 30/30 - "Convert Releases" subtask
Root Cause
Commit 794f8ef added a SQL filter to exclude draft releases (
published_at IS NOT NULL) but failed to add a defensive nil check before dereferencing thePublishedAtpointer in the converter function at line 79:Impact
Environment
Reproduction
Expected Behavior
The converter should safely handle releases with nil
PublishedAtfields, either by:Proposed Solution
Add a nil check before dereferencing the pointer:
Related
Additional Context
The SQL filter
published_at IS NOT NULLwas added to exclude draft releases, but in practice, some releases still have nilPublishedAtfields due to: