{"record":{"id":"555072f1d280d08d","repo":"golang/go","slug":"unknown-vcs-s-s","errorCode":null,"errorMessage":"unknown vcs: %s %s","messagePattern":"unknown vcs: (.+?) (.+?)","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cmd/go/internal/modfetch/codehost/vcs.go","lineNumber":103,"sourceCode":"\tfetchOnce sync.Once\n\tfetchErr  error\n\tfetched   atomic.Bool\n\n\trepoSumOnce sync.Once\n\trepoSum     string\n\n\tstatCache     par.ErrCache[string, *RevInfo]  // cache key is revision\n\treadFileCache par.ErrCache[[2]string, []byte] // cache key is revision and file path\n}\n\nfunc newVCSRepo(ctx context.Context, vcs, remote string, local bool) (Repo, error) {\n\tif vcs == \"git\" {\n\t\treturn newGitRepo(ctx, remote, local)\n\t}\n\tr := &vcsRepo{remote: remote, local: local}\n\tcmd := vcsCmds[vcs]\n\tif cmd == nil {\n\t\treturn nil, fmt.Errorf(\"unknown vcs: %s %s\", vcs, remote)\n\t}\n\tr.cmd = cmd\n\tif local {\n\t\tinfo, err := os.Stat(remote)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !info.IsDir() {\n\t\t\treturn nil, fmt.Errorf(\"%s exists but is not a directory\", remote)\n\t\t}\n\t\tr.dir = remote\n\t\tr.mu.Path = r.dir + \".lock\"\n\t\treturn r, nil\n\t}\n\tif !strings.Contains(remote, \"://\") {\n\t\treturn nil, fmt.Errorf(\"invalid vcs remote: %s %s\", vcs, remote)\n\t}\n\tvar err error","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/golang/go/blob/b6b368adc57c96c3151d224d172029f233ead2c3/src/cmd/go/internal/modfetch/codehost/vcs.go#L85-L121","documentation":"newVCSRepo looks up the requested VCS name in the vcsCmds map (which only contains 'hg', 'svn', 'fossil' — git is handled earlier by newGitRepo). Any other name yields this error. The two %s are the unrecognised vcs and the remote URL.","triggerScenarios":"codehost.newVCSRepo or a caller passes a vcs string that is not 'git', 'hg', 'svn', or 'fossil'. Typically the result of a malformed vanity import meta tag or a corrupted repo metadata record.","commonSituations":"A go-import meta tag advertises `vcs=bzr` or `vcs=cvs`; a manually crafted module cache record names an unsupported VCS; future/typo'd VCS strings like 'github' or 'https'.","solutions":["Inspect the repository's go-import meta tag and correct the vcs attribute to one of git, hg, svn, fossil.","If the upstream truly uses an unsupported VCS, mirror it to git and update the import path or GOPROXY accordingly.","Fetch the module through the module proxy (GOPROXY=https://proxy.golang.org) which serves a zip and never invokes the VCS code path."],"exampleFix":"<!-- before -->\n<meta name=\"go-import\" content=\"example.org/m vcs=bzr https://bzr.example.org/m\">\n\n<!-- after -->\n<meta name=\"go-import\" content=\"example.org/m vcs=git https://git.example.org/m\">","handlingStrategy":"validation","validationCode":"var supportedVCS = map[string]bool{\"git\": true, \"hg\": true, \"svn\": true, \"fossil\": true}\n\nfunc vcsSupported(vcs string) bool { return supportedVCS[vcs] }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate go-import meta tags against the supported VCS set before relying on them.","Prefer git for new vanity imports — it has the broadest support and is the most tested path.","Use GOPROXY to avoid exercising the direct-VCS code path for exotic repos."],"tags":["vcs","vanity-import","go-import","configuration"],"analyzedSha":"b6b368adc57c96c3151d224d172029f233ead2c3","analyzedAt":"2026-08-12T00:22:02.250Z","schemaVersion":2},"datasetVersion":"2026-08-12T08:17:17.861Z"}