{"record":{"id":"29c5022872ad432f","repo":"jesseduffield/lazygit","slug":"could-not-find-any-binary-at-url","errorCode":null,"errorMessage":"Could not find any binary at {{.url}}","messagePattern":"Could not find any binary at (.+?)\\}","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/updates/updates.go","lineNumber":134,"sourceCode":"\t\t\tu.Tr.MajorVersionErr, map[string]string{\n\t\t\t\t\"newVersion\":     newVersion,\n\t\t\t\t\"currentVersion\": currentVersion,\n\t\t\t},\n\t\t)\n\t\treturn \"\", errors.New(errMessage)\n\t}\n\n\trawUrl := u.getBinaryUrl(newVersion)\n\n\tu.Log.Info(\"Checking for resource at url \" + rawUrl)\n\tif !u.verifyResourceFound(rawUrl) {\n\t\terrMessage := utils.ResolvePlaceholderString(\n\t\t\tu.Tr.CouldNotFindBinaryErr, map[string]string{\n\t\t\t\t\"url\": rawUrl,\n\t\t\t},\n\t\t)\n\n\t\treturn \"\", errors.New(errMessage)\n\t}\n\tu.Log.Info(\"Verified resource is available, ready to update\")\n\n\treturn newVersion, nil\n}\n\n// CheckForNewUpdate checks if there is an available update\nfunc (u *Updater) CheckForNewUpdate(onFinish func(string, error) error, userRequested bool) {\n\tif !userRequested && u.skipUpdateCheck() {\n\t\treturn\n\t}\n\n\tnewVersion, err := u.checkForNewUpdate()\n\tif err = onFinish(newVersion, err); err != nil {\n\t\tu.Log.Error(err)\n\t}\n}\n","sourceCodeStart":116,"sourceCodeEnd":152,"githubUrl":"https://github.com/jesseduffield/lazygit/blob/c477a2959b229fbf3284be0d4d2904ab61ec3c94/pkg/updates/updates.go#L116-L152","documentation":"After determining a new version exists, the updater builds the download URL for your OS/arch and issues a HEAD request (verifyResourceFound). If the resource is not reachable/does not exist, it returns CouldNotFindBinaryErr with the URL. The release exists on GitHub but the binary asset for your platform is missing or the check failed.","triggerScenarios":"getBinaryUrl produces an asset name with no matching file in the release (unsupported GOOS/GOARCH combination), the network blocked the HEAD request, or the release was published without binaries and is still uploading.","commonSituations":"Running on an uncommon platform (e.g. some ARM variants, FreeBSD); corporate proxy/firewall intercepting GitHub; checking moments after a release was tagged but before assets finished uploading; a release published as source-only.","solutions":["Retry shortly after — assets can lag the tag while uploads complete.","Open the URL from the error in a browser; if 404, your platform has no prebuilt binary — build from source or use a package manager.","Check proxy/firewall settings if the URL clearly exists but the HEAD request fails.","Install the update manually from the GitHub release page."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// Pre-flight the asset before offering the update:\nif !u.verifyResourceFound(u.getBinaryUrl(newVersion)) {\n    // skip/degrade: no binary for this platform\n}","typeGuard":null,"tryCatchPattern":"// Retry with backoff — assets lag tags and networks blip:\nfor attempt := 0; attempt < 3; attempt++ {\n    ver, err := updater.getLatestVersionNumberAndCheck()\n    if err == nil {\n        break\n    }\n    if strings.Contains(err.Error(), u.Tr.CouldNotFindBinaryErr) || isTransient(err) {\n        time.Sleep(time.Duration(attempt+1) * 30 * time.Second)\n        continue\n    }\n    return err\n}","preventionTips":["Retry a few minutes later if a release just went out — binaries upload after tagging.","For exotic platforms, script your own build-from-source instead of relying on auto-update.","Ensure GitHub release domains are reachable from your network/proxy."],"tags":["updates","network","release-assets","platform"],"backgroundTag":null,"analyzedSha":"c477a2959b229fbf3284be0d4d2904ab61ec3c94","analyzedAt":"2026-08-15T08:34:32.451Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}