{"record":{"id":"e3b53d61ada00026","repo":"kubernetes/kops","slug":"providerid-q-not-recognized-for-node-s","errorCode":null,"errorMessage":"providerID %q not recognized for node %s","messagePattern":"providerID %q not recognized for node (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/nodeidentity/aws/identify.go","lineNumber":97,"sourceCode":"\t\tcache:        expirationcache.NewTTLStore(stringKeyFunc, cacheTTL),\n\t\tcacheEnabled: cacheNodeidentityInfo,\n\t}, nil\n}\n\n// stringKeyFunc is a string as cache key function\nfunc stringKeyFunc(obj interface{}) (string, error) {\n\tkey := obj.(*nodeidentity.Info).InstanceID\n\treturn key, nil\n}\n\n// IdentifyNode queries AWS for the node identity information\nfunc (i *nodeIdentifier) IdentifyNode(ctx context.Context, node *corev1.Node) (*nodeidentity.Info, error) {\n\tproviderID := node.Spec.ProviderID\n\tif providerID == \"\" {\n\t\treturn nil, fmt.Errorf(\"providerID was not set for node %s\", node.Name)\n\t}\n\tif !strings.HasPrefix(providerID, \"aws://\") {\n\t\treturn nil, fmt.Errorf(\"providerID %q not recognized for node %s\", providerID, node.Name)\n\t}\n\n\ttokens := strings.Split(strings.TrimPrefix(providerID, \"aws://\"), \"/\")\n\tif len(tokens) != 3 {\n\t\treturn nil, fmt.Errorf(\"providerID %q not recognized for node %s\", providerID, node.Name)\n\t}\n\n\t// zone := tokens[1]\n\tinstanceID := tokens[2]\n\n\t// If caching is enabled try pulling nodeidentity.Info from cache before\n\t// doing a EC2 API call.\n\tif i.cacheEnabled {\n\t\tobj, exists, err := i.cache.GetByKey(instanceID)\n\t\tif err != nil {\n\t\t\tklog.Warningf(\"Nodeidentity info cache lookup failure: %v\", err)\n\t\t}\n\t\tif exists {","sourceCodeStart":79,"sourceCodeEnd":115,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/pkg/nodeidentity/aws/identify.go#L79-L115","documentation":"The node's spec.providerID is set but does not carry the expected aws:/// prefix format, so the instance ID cannot be extracted. The prefix/shape check is a type guard over the providerID string; the offending value and node are included in the message.","triggerScenarios":"Thrown at pkg/nodeidentity/aws/identify.go:97 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Correct node.spec.providerID to the aws:///<availability-zone>/<instance-id> format","Check whether a wrong cloud-provider integration stamped the providerID"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}