zvika-finally opened a new issue, #8629:
URL: https://github.com/apache/incubator-devlake/issues/8629
## 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 794f8efcd 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:
```go
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 794f8efcd)
- **OS:** macOS (Darwin 24.4.0)
- **Date observed:** October 31, 2025
## Reproduction
1. Configure a GitHub connection with repositories that have releases
2. Run a pipeline to collect data from those repositories
3. 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:
```go
if githubRelease.PublishedAt == nil {
return nil, nil
}
```
## Related
- Related commit: 794f8efcd (fix: drafting releases should not be converted
to domain layer)
- Pull request with fix: #8628
## 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
--
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]