ipfs/kubo · error

release %s not found on GitHub: %w

Error message

release %s not found on GitHub: %w

What it means

Fired by findReleaseAsset when githubReleaseByTag cannot fetch the release for the requested tag — typically a nonexistent or misspelled version tag, or an unreleased tag with no GitHub release object. The wrap carries the underlying API/HTTP error so the user can tell a bad tag name from a network problem.

Source

Thrown at core/commands/update_github.go:194

		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], nil
		}
	}

	return nil, nil, fmt.Errorf(
		"release %s exists but has no binary for %s/%s yet; build artifacts may still be uploading, try again in a few hours",
		tag, runtime.GOOS, runtime.GOARCH)
}

// downloadAsset downloads a release asset by its browser_download_url.
// This hits GitHub's CDN directly, not the API, so no auth headers are needed.
func downloadAsset(ctx context.Context, url string) ([]byte, error) {
	req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)

View on GitHub (pinned to 329838acdf)

Solutions

  1. Check the requested version against github.com/ipfs/kubo/releases
  2. Retry in case of a transient GitHub API failure
  3. Omit the version to update to the latest release
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at core/commands/update_github.go:194 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/a244343e01178228. Report an issue: GitHub.