kubernetes/kops · error

failed to get info for Akamai (Linode) instance %q: empty re

Error message

failed to get info for Akamai (Linode) instance %q: empty response

What it means

IdentifyNode checks the result of client.GetInstance after the error path: if the API returned (nil, nil) — no error but no instance — this guard reports an empty response for the instance ID. It protects against silently dereferencing a nil instance when building node identity labels.

Source

Thrown at pkg/nodeidentity/linode/identify.go:101

		return nil, fmt.Errorf("providerID %q not recognized for node %s: %w", providerID, node.Name, err)
	}

	if i.cacheEnabled {
		obj, exists, err := i.cache.GetByKey(instanceID)
		if err != nil {
			klog.Warningf("Nodeidentity info cache lookup failure: %v", err)
		}
		if exists {
			return obj.(*nodeidentity.Info), nil
		}
	}

	instance, err := i.client.GetInstance(ctx, instanceNumericID)
	if err != nil {
		return nil, fmt.Errorf("failed to get info for Akamai (Linode) instance %q: %w", instanceID, err)
	}
	if instance == nil {
		return nil, fmt.Errorf("failed to get info for Akamai (Linode) instance %q: empty response", instanceID)
	}

	if !isExpectedInstanceStatus(instance.Status) {
		return nil, fmt.Errorf("found instance %q with unexpected status: %q", instanceID, instance.Status)
	}

	info := &nodeidentity.Info{
		InstanceID: instanceID,
		Labels:     buildLabelsFromTags(instance.Tags),
	}

	if i.cacheEnabled {
		if err := i.cache.Add(info); err != nil {
			klog.Warningf("Failed to add node identity info to cache: %v", err)
		}
	}

	return info, nil

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Verify the instance ID in node.spec.providerID exists in the Linode account
  2. Delete the stale Node object if the instance was deleted
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/nodeidentity/linode/identify.go:101 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/8e64f1eb19631eba. Report an issue: GitHub.