ipfs/kubo · error
decoding GitHub release: %w
Error message
decoding GitHub release: %w
What it means
Fired by githubReleaseByTag when the HTTP response body from the GitHub API release-by-tag endpoint cannot be decoded into the ghRelease struct (malformed JSON, unexpected response shape, or a truncated/error body). It wraps the underlying decode error and aborts the release lookup used by the self-update flow.
Source
Thrown at core/commands/update_github.go:182
if len(filtered) >= count {
break
}
}
return filtered, nil
}
// githubReleaseByTag fetches a single release by its git tag.
func githubReleaseByTag(ctx context.Context, tag string) (*ghRelease, error) {
url := fmt.Sprintf("%s/tags/%s", githubReleaseBaseURL(), tag)
resp, err := githubGet(ctx, url)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var rel ghRelease
if err := json.NewDecoder(resp.Body).Decode(&rel); err != nil {
return nil, fmt.Errorf("decoding GitHub release: %w", err)
}
return &rel, nil
}
// findReleaseAsset locates the platform-appropriate asset in a release.
// It fails immediately with a clear message if:
// - the release tag does not exist on GitHub (typo, unreleased version)
// - the release exists but has no binary for this OS/arch (CI still building)
func findReleaseAsset(ctx context.Context, tag string) (*ghRelease, *ghAsset, error) {
rel, err := githubReleaseByTag(ctx, tag)
if err != nil {
return nil, nil, fmt.Errorf("release %s not found on GitHub: %w", tag, err)
}
want := assetNameForPlatformTag(tag)
for i := range rel.Assets {
if rel.Assets[i].Name == want {
return rel, &rel.Assets[i], nilView on GitHub (pinned to 329838acdf)
Solutions
- Retry the command; transient API/rate-limit failures are typical
- Confirm the tag exists on github.com/ipfs/kubo/releases
- Check proxy or captive-portal interference if persistent
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at core/commands/update_github.go:182 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ipfs/kubo@329838acdf (2026-09-03).
Data as JSON: /api/errors/1aa6314ddfa0f73b.
Report an issue: GitHub.