{"record":{"id":"ab648603baef38e8","repo":"multica-ai/multica","slug":"could-not-determine-latest-version-check-https","errorCode":null,"errorMessage":"could not determine latest version; check https://github.com/multica-ai/multica/releases/latest","messagePattern":"could not determine latest version; check https://github\\.com/multica-ai/multica/releases/latest","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/cmd/multica/cmd_update.go","lineNumber":61,"sourceCode":"\t\t}\n\t\tfmt.Fprintf(os.Stderr, \"Latest version:  %s\\n\\n\", latest.TagName)\n\t}\n\n\t// Detect installation method and update accordingly.\n\tif cli.IsBrewInstall() {\n\t\tfmt.Fprintln(os.Stderr, \"Updating via Homebrew...\")\n\t\toutput, err := cli.UpdateViaBrew()\n\t\tif err != nil {\n\t\t\tfmt.Fprintf(os.Stderr, \"%s\\n\", output)\n\t\t\treturn fmt.Errorf(\"brew upgrade failed: %w\\nYou can try manually: brew upgrade multica-ai/tap/multica\", err)\n\t\t}\n\t\tfmt.Fprintln(os.Stderr, \"Update complete.\")\n\t\treturn nil\n\t}\n\n\t// Not installed via brew — download binary directly from GitHub Releases.\n\tif latest == nil {\n\t\treturn fmt.Errorf(\"could not determine latest version; check https://github.com/multica-ai/multica/releases/latest\")\n\t}\n\ttargetVersion := latest.TagName\n\tfmt.Fprintf(os.Stderr, \"Downloading %s from GitHub Releases...\\n\", targetVersion)\n\toutput, err := cli.UpdateViaDownloadWithTimeout(targetVersion, updateDownloadTimeout)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"update failed: %w\", err)\n\t}\n\tfmt.Fprintf(os.Stderr, \"%s\\nUpdate complete.\\n\", output)\n\treturn nil\n}\n","sourceCodeStart":43,"sourceCodeEnd":72,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/cmd/multica/cmd_update.go#L43-L72","documentation":"The update command is not running under Homebrew, so it needs the latest release tag from cli.FetchLatestRelease() to build the download URL — but that call failed earlier (a warning was printed: 'could not check latest version'), leaving `latest == nil`. Without a tag there is nothing to download, so the command aborts and points the user at the GitHub releases page.","triggerScenarios":"Running `multica update` on a non-brew install while GitHub API/releases are unreachable (offline, proxy blocking api.github.com, rate limit) — the earlier FetchLatestRelease error is downgraded to a warning, then this guard fires at the download step.","commonSituations":"Corporate proxies or sandboxes that block api.github.com, GitHub API rate limiting from shared IPs, DNS failures, or air-gapped machines.","solutions":["Check network/proxy access to https://api.github.com and https://github.com/multica-ai/multica/releases.","Retry once transient network conditions or rate limits clear (unauthenticated GitHub API is limited to 60 req/h).","If a GITHUB_TOKEN-style mechanism is supported by your setup, use it to raise the rate limit.","As a workaround, download the binary manually from the releases page the error links to."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"curl -fsS --max-time 10 https://api.github.com/repos/multica-ai/multica/releases/latest >/dev/null \\\n  && echo 'github reachable' || echo 'github unreachable: update will fail'","typeGuard":null,"tryCatchPattern":"for i in 1 2 3; do multica update && break; echo \"attempt $i failed (likely network)\"; sleep 30; done","preventionTips":["Ensure network/proxy access to api.github.com before scripting updates.","Cache the last-known release tag so offline runs can skip the check.","Prefer the Homebrew install path where brew already handles retrying."],"tags":["cli","network","github-api","update"],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}