{"record":{"id":"be2efedcca05cee7","repo":"GoogleContainerTools/skaffold","slug":"unknown-architecture-q","errorCode":null,"errorMessage":"unknown architecture %q","messagePattern":"unknown architecture %q","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/platform/platform.go","lineNumber":148,"sourceCode":"\n// isKnownOS returns an error if we don't know about the operating system.\n// Unexported function copied from \"github.com/containerd/containerd/platforms\"\nfunc isKnownOS(os string) error {\n\tswitch os {\n\tcase \"aix\", \"android\", \"darwin\", \"dragonfly\", \"freebsd\", \"hurd\", \"illumos\", \"js\", \"linux\", \"nacl\", \"netbsd\", \"openbsd\", \"plan9\", \"solaris\", \"windows\", \"zos\":\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"unknown operating system %q\", os)\n}\n\n// isKnownArch returns an error if we don't know about the architecture.\n// Unexported function copied from \"github.com/containerd/containerd/platforms\"\nfunc isKnownArch(arch string) error {\n\tswitch arch {\n\tcase \"386\", \"amd64\", \"amd64p32\", \"arm\", \"armbe\", \"arm64\", \"arm64be\", \"ppc64\", \"ppc64le\", \"mips\", \"mipsle\", \"mips64\", \"mips64le\", \"mips64p32\", \"mips64p32le\", \"ppc\", \"riscv\", \"riscv64\", \"s390\", \"s390x\", \"sparc\", \"sparc64\", \"wasm\":\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"unknown architecture %q\", arch)\n}\n\nfunc Format(pl specs.Platform) string { return platforms.Format(pl) }\n","sourceCodeStart":130,"sourceCodeEnd":152,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/platform/platform.go#L130-L152","documentation":"Skaffold validates the architecture component of a platform string against known GOARCH values (copied from containerd/platforms). If the arch token is not in that list, isKnownArch returns this error. It uses GOARCH names like amd64 and arm64, not marketing names like x86_64 or aarch64.","triggerScenarios":"A platform selection contains an unknown arch token, e.g. --platform linux/x86_64 or build.platforms: [linux/aarch64]; isKnownPlatform calls isKnownArch which falls through its switch.","commonSituations":"Writing x86_64 instead of amd64; aarch64 instead of arm64; armhf instead of arm; typos like am64; using 32-bit names like i386 instead of 386.","solutions":["Use GOARCH names: amd64, arm64, arm, 386, ppc64le, s390x, riscv64, etc.","Replace x86_64 with amd64 and aarch64 with arm64 in the platform string","Test with a canonical platform value like linux/amd64 to isolate the bad token"],"exampleFix":"// before\nskaffold build --platform linux/x86_64\n// after\nskaffold build --platform linux/amd64","handlingStrategy":"validation","validationCode":"const knownArch = new Set([\"386\",\"amd64\",\"amd64p32\",\"arm\",\"armbe\",\"arm64\",\"arm64be\",\"ppc64\",\"ppc64le\",\"mips\",\"mipsle\",\"mips64\",\"mips64le\",\"mips64p32\",\"mips64p32le\",\"ppc\",\"riscv\",\"riscv64\",\"s390\",\"s390x\",\"sparc\",\"sparc64\",\"wasm\"]);\nfunction validPlatformArch(p) { const parts = p.split(\"/\"); return parts.length === 2 && knownArch.has(parts[1]); }","typeGuard":"function isKnownArch(arch) {\n  return [\"386\",\"amd64\",\"amd64p32\",\"arm\",\"armbe\",\"arm64\",\"arm64be\",\"ppc64\",\"ppc64le\",\"mips\",\"mipsle\",\"mips64\",\"mips64le\",\"mips64p32\",\"mips64p32le\",\"ppc\",\"riscv\",\"riscv64\",\"s390\",\"s390x\",\"sparc\",\"sparc64\",\"wasm\"].includes(arch);\n}","tryCatchPattern":"try {\n  await skaffold.build({ platforms: [sel] });\n} catch (e) {\n  if (/unknown architecture/.test(String(e))) {\n    throw new Error(`Bad arch in platform \"${sel}\"; use GOARCH names like amd64, not x86_64`);\n  }\n  throw e;\n}","preventionTips":["Use GOARCH spellings: amd64 not x86_64, arm64 not aarch64, 386 not i386","Normalize machine output (uname -m) to GOARCH before building platform strings","Validate platform strings with a shared linter/checker in CI"],"tags":["platform","configuration","architecture"],"backgroundTag":"unknown-platform-arch","analyzedSha":"a1189de023efc32d4b8e11f395acc678aa555011","analyzedAt":"2026-09-05T12:09:27.064Z","contentChangedAt":"2026-09-05T12:09:27.064Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}