You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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)
This is a confirmed critical bug: the GitHub plugin's release converter crashes with a nil pointer dereference when processing releases where PublishedAt is nil, typically for draft releases. The root cause is the absence of a nil check before dereferencing PublishedAt in the converter function, despite a SQL filter intended to exclude such cases. This leads to 100% pipeline failure for affected repositories.
The recommended and widely accepted fix is to add a nil check before dereferencing the pointer, skipping releases where PublishedAt is nil (i.e., draft releases) to prevent the panic and ensure pipeline stability. This approach is consistent with defensive programming best practices in Go and is supported by related issues and discussions in the project, which highlight similar patterns and fixes for nullable fields in other plugins as well (source, source, source).
There is no project documentation specifically covering best practices for handling nullable fields or defensive programming in Go, but the consensus in the codebase and issue tracker is to always check for nil before dereferencing pointers, especially when dealing with data from external APIs or databases that may be inconsistent.
Hi @klesh - I don't believe this is solving the issue. I am running this code as part of the latest beta version and my transformations are failing due to this issue.
Activity
dosubot commentedon Oct 31, 2025
This is a confirmed critical bug: the GitHub plugin's release converter crashes with a nil pointer dereference when processing releases where
PublishedAtis nil, typically for draft releases. The root cause is the absence of a nil check before dereferencingPublishedAtin the converter function, despite a SQL filter intended to exclude such cases. This leads to 100% pipeline failure for affected repositories.The recommended and widely accepted fix is to add a nil check before dereferencing the pointer, skipping releases where
PublishedAtis nil (i.e., draft releases) to prevent the panic and ensure pipeline stability. This approach is consistent with defensive programming best practices in Go and is supported by related issues and discussions in the project, which highlight similar patterns and fixes for nullable fields in other plugins as well (source, source, source).There is no project documentation specifically covering best practices for handling nullable fields or defensive programming in Go, but the consensus in the codebase and issue tracker is to always check for nil before dereferencing pointers, especially when dealing with data from external APIs or databases that may be inconsistent.
To reply, just mention @dosu.
Docs are dead. Just use Dosu.
klesh commentedon Nov 3, 2025
Fixed by #8625
zvika-finally commentedon Nov 3, 2025
Hi @klesh - I don't believe this is solving the issue. I am running this code as part of the latest beta version and my transformations are failing due to this issue.
Can you please reevaluate?
klesh commentedon Nov 7, 2025
@zvika-finally It is included in this version: https://github.com/apache/incubator-devlake/releases/tag/v1.0.3-beta8
zvika-finally commentedon Nov 14, 2025
I confirmed that this is the case.