{"record":{"id":"0036cb09836892fd","repo":"kubernetes/kops","slug":"unknown-url-for-runc-version-s-s","errorCode":null,"errorMessage":"unknown url for runc version: %s - %s","messagePattern":"unknown url for runc version: (.+?) - (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/nodemodel/wellknownassets/runc.go","lineNumber":95,"sourceCode":"\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"unable to parse version string: %q\", version)\n\t}\n\tif sv.LT(semver.MustParse(\"1.1.0\")) {\n\t\treturn \"\", fmt.Errorf(\"unsupported runc version: %q\", version)\n\t}\n\n\tvar u string\n\tswitch arch {\n\tcase architectures.ArchitectureAmd64:\n\t\tu = fmt.Sprintf(runcVersionUrlAmd64, version)\n\tcase architectures.ArchitectureArm64:\n\t\tu = fmt.Sprintf(runcVersionUrlArm64, version)\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unknown arch: %q\", arch)\n\t}\n\n\tif u == \"\" {\n\t\treturn \"\", fmt.Errorf(\"unknown url for runc version: %s - %s\", arch, version)\n\t}\n\n\treturn u, nil\n}\n","sourceCodeStart":77,"sourceCodeEnd":100,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/pkg/nodemodel/wellknownassets/runc.go#L77-L100","documentation":"After the arch switch, the code double-checks that a non-empty URL was constructed. If the fmt.Sprintf for the matched architecture produced an empty string (e.g. the corresponding runcVersionUrl constant is empty or the version formatted to nothing), this guard fires. Unlike the arch error, the architecture itself was recognized.","triggerScenarios":"FindRuncAsset called with a recognized arch whose runcVersionUrlAmd64/runcVersionUrlArm64 template is empty, or an empty/blank version string that formats the URL to an empty value despite passing semver parsing.","commonSituations":"Custom kOps builds with blanked URL constants; unit tests injecting empty templates; unusual version strings that slip through ParseTolerant.","solutions":["Verify the runcVersionUrlAmd64/Arm64 constants are populated in your kOps build.","Pass a concrete runc version string (e.g. \"1.1.12\").","Report an upstream bug if this occurs with an official kOps release, since both constants are normally hard-coded."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if version == \"\" {\n    return errors.New(\"runc version must be non-empty\")\n}\nif _, err := semver.ParseTolerant(version); err != nil {\n    return err\n}","typeGuard":null,"tryCatchPattern":"u, err := FindRuncAsset(arch, version)\nif err != nil && strings.Contains(err.Error(), \"unknown url\") {\n    // fall back to bundled/default asset or surface a config bug\n}","preventionTips":["Use official kOps binaries where URL constants are populated","Pass explicit, well-formed version strings","Add unit tests covering asset URL generation when forking kOps"],"tags":["runc","asset-download","configuration"],"backgroundTag":"asset-url-not-found","analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}