ipfs/kubo · error

release %s exists but has no binary for %s/%s yet; build art

Error message

release %s exists but has no binary for %s/%s yet; build artifacts may still be uploading, try again in a few hours

What it means

The GitHub release exists but none of its assets matches the binary name for this GOOS/GOARCH: right after a release is tagged, CI may still be building or uploading artifacts, so the platform binary is not there yet.

Source

Thrown at core/commands/update_github.go:204

// 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)
	if err != nil {
		return nil, err
	}
	req.Header.Set("User-Agent", "kubo/"+version.CurrentVersionNumber)

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		return nil, fmt.Errorf("downloading asset: %w", err)
	}
	defer resp.Body.Close()

View on GitHub (pinned to 329838acdf)

Solutions

  1. Wait a few hours and retry while CI uploads artifacts
  2. Verify your platform has official builds for this release
  3. Download the binary manually once artifacts appear on the release page
Defensive patterns

Strategy: retry

When it happens

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