{"record":{"id":"5a9dc137da619d5d","repo":"kubernetes/kops","slug":"failed-to-get-info-for-akamai-linode-instance-q","errorCode":null,"errorMessage":"failed to get info for Akamai (Linode) instance %q: %w","messagePattern":"failed to get info for Akamai \\(Linode\\) instance %q: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/nodeidentity/linode/identify.go","lineNumber":98,"sourceCode":"\n\tinstanceNumericID, instanceID, err := parseInstanceIDFromProviderID(providerID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"providerID %q not recognized for node %s: %w\", providerID, node.Name, err)\n\t}\n\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 {\n\t\t\treturn obj.(*nodeidentity.Info), nil\n\t\t}\n\t}\n\n\tinstance, err := i.client.GetInstance(ctx, instanceNumericID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get info for Akamai (Linode) instance %q: %w\", instanceID, err)\n\t}\n\tif instance == nil {\n\t\treturn nil, fmt.Errorf(\"failed to get info for Akamai (Linode) instance %q: empty response\", instanceID)\n\t}\n\n\tif !isExpectedInstanceStatus(instance.Status) {\n\t\treturn nil, fmt.Errorf(\"found instance %q with unexpected status: %q\", instanceID, instance.Status)\n\t}\n\n\tinfo := &nodeidentity.Info{\n\t\tInstanceID: instanceID,\n\t\tLabels:     buildLabelsFromTags(instance.Tags),\n\t}\n\n\tif i.cacheEnabled {\n\t\tif err := i.cache.Add(info); err != nil {\n\t\t\tklog.Warningf(\"Failed to add node identity info to cache: %v\", err)\n\t\t}","sourceCodeStart":80,"sourceCodeEnd":116,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/pkg/nodeidentity/linode/identify.go#L80-L116","documentation":"The Linode API GetInstance call failed while resolving the node's instance (auth, rate limit, or network error). The %w detail carries the API error; the instance ID in the message identifies which lookup failed.","triggerScenarios":"Thrown at pkg/nodeidentity/linode/identify.go:98 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the wrapped API error and fix auth/rate-limit/connectivity issues","Verify the LINODE_TOKEN is valid for the instance's project","Retry identification after transient API failures"],"exampleFix":null,"handlingStrategy":"try-catch","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-12T07:17:12.445Z"}