JanDeDobbeleer/oh-my-posh · error

failed to find checksum for asset

Error message

failed to find checksum for asset

What it means

validateChecksum scans the downloaded SHA256SUMS content line by line looking for a checksum matching the asset filename. If no line matches (assetChecksum stays empty), it fails with this error. It means the checksums file exists but does not list the asset the updater downloaded.

Source

Thrown at src/cli/upgrade/verify.go:133

	return &ed25519PubKey, nil
}

func validateChecksum(asset string, sha256sums, binary []byte) error {
	var assetChecksum string
	checksums := strings.SplitSeq(string(sha256sums), "\n")

	for line := range checksums {
		if !strings.HasSuffix(line, asset) {
			continue
		}

		assetChecksum = strings.Fields(line)[0]
		break
	}

	if assetChecksum == "" {
		log.Debug("failed to find checksum for asset")
		return fmt.Errorf("failed to find checksum for asset")
	}

	// calculate the checksum of the binary
	binaryChecksum := fmt.Sprintf("%x", sha256.Sum256(binary))

	if assetChecksum != binaryChecksum {
		log.Debugf("checksum mismatch, expected: %s, got: %s", assetChecksum, binaryChecksum)
		return fmt.Errorf("checksum mismatch")
	}

	return nil
}

View on GitHub (pinned to 0976794618)

Solutions

  1. Retry the upgrade to pick up a fully published release
  2. Pin/choose a stable release version instead of a prerelease channel
  3. Check the GitHub release page confirms the asset is listed in checksums.txt
  4. Install manually via a package manager if the self-updater keeps failing
Defensive patterns

Strategy: retry

Try / catch

if err := cli.Upgrade(); err != nil {
    if strings.Contains(err.Error(), "failed to find checksum for asset") {
        // release assets/checksums out of sync: retry later or use a stable version
    }
}

Prevention

When it happens

Trigger: verify → downloadAndVerify → validateChecksum with a checksums file lacking a line for the target asset name — asset renamed between versions, OS/arch variant missing from the release, or the wrong (older/newer) checksums file downloaded.

Common situations: Upgrading to a freshly cut release where checksums.txt was uploaded before/after the asset; nightly/prerelease channels with incomplete assets; custom UPGRADE channel env var pointing at a mismatched release.

Related errors


AI-assisted analysis of JanDeDobbeleer/oh-my-posh@0976794618 (2026-08-31). Data as JSON: /api/errors/aac20544e7545d3b. Report an issue: GitHub.