{"record":{"id":"727c24e2a2ea423d","repo":"kubernetes/kops","slug":"unable-to-determine-architecture-info-for-instance","errorCode":null,"errorMessage":"unable to determine architecture info for instance type %q","messagePattern":"unable to determine architecture info for instance type %q","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/new_cluster.go","lineNumber":1753,"sourceCode":"\nfunc MachineArchitecture(cloud fi.Cloud, machineType string) (architectures.Architecture, error) {\n\tif machineType == \"\" {\n\t\treturn architectures.ArchitectureAmd64, nil\n\t}\n\n\t// Some calls only have AWS initialised at this point and in other cases pass in nil as cloud.\n\tif cloud == nil {\n\t\treturn architectures.ArchitectureAmd64, nil\n\t}\n\n\tswitch cloud.ProviderID() {\n\tcase api.CloudProviderAWS:\n\t\tinfo, err := cloud.(awsup.AWSCloud).DescribeInstanceType(machineType)\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"error finding instance info for instance type %q: %w\", machineType, err)\n\t\t}\n\t\tif info.ProcessorInfo == nil || len(info.ProcessorInfo.SupportedArchitectures) == 0 {\n\t\t\treturn \"\", fmt.Errorf(\"unable to determine architecture info for instance type %q\", machineType)\n\t\t}\n\t\tvar unsupported []ec2types.ArchitectureType\n\t\tfor _, arch := range info.ProcessorInfo.SupportedArchitectures {\n\t\t\t// Return the first found supported architecture, in order of popularity\n\t\t\tswitch arch {\n\t\t\tcase ec2types.ArchitectureTypeX8664:\n\t\t\t\treturn architectures.ArchitectureAmd64, nil\n\t\t\tcase ec2types.ArchitectureTypeArm64:\n\t\t\t\treturn architectures.ArchitectureArm64, nil\n\t\t\tdefault:\n\t\t\t\tunsupported = append(unsupported, arch)\n\t\t\t}\n\t\t}\n\t\treturn \"\", fmt.Errorf(\"unsupported architecture for instance type %q: %v\", machineType, unsupported)\n\tdefault:\n\t\t// No other clouds are known to support any other architectures at this time\n\t\treturn architectures.ArchitectureAmd64, nil\n\t}","sourceCodeStart":1735,"sourceCodeEnd":1771,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/new_cluster.go#L1735-L1771","documentation":"After DescribeInstanceType succeeds, kops inspects info.ProcessorInfo.SupportedArchitectures; if the field is nil or empty it cannot map the instance type to an architecture and returns this error. It is a defensive guard against incomplete EC2 API responses.","triggerScenarios":"An instance type whose EC2 DescribeInstanceType response has no ProcessorInfo (e.g. unusual/new/specialized families, or an API surface change where the SDK returns an empty ProcessorInfo).","commonSituations":"Very new instance families before ProcessorInfo is populated; AWS SDK schema changes; some metal or specialized instance types.","solutions":["Choose a mainstream instance type (e.g. t3, m5, c6g families)","Upgrade kops/AWS SDK to pick up fixes for newer instance families","Specify a node image and architecture explicitly if supported by the code path"],"exampleFix":"// before\n--instance-type=some-exotic-new-type\n// after\n--instance-type=m6i.large","handlingStrategy":"fallback","validationCode":"// check ProcessorInfo yourself\nout, _ := ec2Client.DescribeInstanceTypes(...)\nif len(out.InstanceTypes[0].ProcessorInfo.SupportedArchitectures) == 0 {\n    // choose another instance type\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Prefer mainstream instance families","Pin known-good instance types in config","Upgrade kops for new families"],"tags":["aws","ec2","architecture"],"backgroundTag":"ec2-instance-type-architecture-unknown","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"}