{"record":{"id":"2d4d93303c8f070a","repo":"asdf-vm/asdf","slug":"no-compatible-versions-available-s-s","errorCode":null,"errorMessage":"No compatible versions available (%s %s)","messagePattern":"No compatible versions available \\((.+?) (.+?)\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/cli/cli.go","lineNumber":1592,"sourceCode":"}\n\nfunc reshimToolVersion(conf config.Config, plugin plugins.Plugin, versionStr string, out io.Writer, errOut io.Writer) error {\n\tversion := toolversions.Parse(versionStr)\n\n\treturn shims.GenerateForVersion(conf, plugin, version, out, errOut)\n}\n\nfunc latestForPlugin(conf config.Config, toolName, pattern string, showStatus bool, errOut io.Writer) error {\n\t// show single plugin\n\tplugin := plugins.New(conf, toolName)\n\tlatest, err := versions.Latest(plugin, pattern, errOut)\n\tif err != nil && err.Error() != \"no latest version found\" {\n\t\tfmt.Printf(\"unable to load latest version: %s\\n\", err)\n\t\treturn err\n\t}\n\n\tif latest == \"\" {\n\t\terr := fmt.Errorf(\"No compatible versions available (%s %s)\", toolName, pattern)\n\t\tfmt.Println(err.Error())\n\t\treturn err\n\t}\n\n\tif showStatus {\n\t\tinstalled := installs.IsInstalled(conf, plugin, toolversions.Version{Type: \"version\", Value: latest})\n\t\tfmt.Printf(\"%s\\t%s\\t%s\\n\", plugin.Name, latest, installedStatus(installed))\n\t} else {\n\t\tfmt.Printf(\"%s\\n\", latest)\n\t}\n\treturn nil\n}\n\nfunc installedStatus(installed bool) string {\n\tif installed {\n\t\treturn \"installed\"\n\t}\n\treturn \"missing\"","sourceCodeStart":1574,"sourceCodeEnd":1610,"githubUrl":"https://github.com/asdf-vm/asdf/blob/074a1722ca88d6677f228541ce06efaf4f9924d4/internal/cli/cli.go#L1574-L1610","documentation":"latestCommand resolves the latest version for a tool, optionally filtered by a pattern. If resolution yields an empty latest string (no version matched the pattern or the plugin's latest-listing produced nothing), latestForPlugin returns this error naming the tool and pattern.","triggerScenarios":"`asdf latest <plugin>` where the plugin reports no versions (bad/broken repo, no network for git-based listing); `asdf latest <plugin> <pattern>` where no version matches the pattern; plugin's list-all callback returns nothing usable.","commonSituations":"Typo in the plugin name so an unrelated/missing plugin yields no versions; an overly restrictive version pattern like `asdf latest nodejs 999` matching nothing; offline environment preventing the plugin from listing remote versions.","solutions":["Check the plugin name with `asdf plugin list` and correct typos.","Widen or correct the version pattern (e.g. `asdf latest nodejs 20`).","Verify network access / the plugin repo URL; re-add the plugin if its repo is broken.","Run `asdf plugin update <plugin>` to refresh the plugin before retrying."],"exampleFix":"# before\nasdf latest nodejs 999   # no match\n# after\nasdf latest nodejs 20    # resolves latest 20.x","handlingStrategy":"validation","validationCode":"asdf plugin list | grep -qx \"$PLUGIN\" || { echo \"plugin $PLUGIN not installed\"; exit 1; }\nasdf latest \"$PLUGIN\" || true","typeGuard":null,"tryCatchPattern":"if ! latest=$(asdf latest \"$PLUGIN\" \"$PATTERN\" 2>&1); then\n  echo \"$latest\"; exit 1\nfi","preventionTips":["Verify plugin names with `asdf plugin list` before querying latest","Use realistic version patterns (major versions like 20, not impossible values)","Keep plugins updated (`asdf plugin update --all`) so version lists are fresh","Ensure network access for git-based version listing"],"tags":["cli","versioning","plugins","resolution"],"backgroundTag":"no-compatible-version-found","analyzedSha":"074a1722ca88d6677f228541ce06efaf4f9924d4","analyzedAt":"2026-08-30T19:56:42.972Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}