kubernetes/kops · error
getting info for %s network interface %q: %w
Error message
getting info for %s network interface %q: %w
What it means
Wraps a failure of the Azure networkInterfaces Get call when resolving the NIC of a standalone VM during bootstrap token verification. Fires when the ARM API returns an error (auth, throttling, wrong resource group, or the NIC was deleted between the VM lookup and the NIC lookup). The %s is the human-readable VM description and %w carries the underlying azuresdk error.
Source
Thrown at upup/pkg/fi/cloudup/azure/verifier.go:180
desc := fmt.Sprintf("VM %q", vmName)
klog.V(2).Infof("Azure verifier for VM %q looking up Azure API object", vmLogID)
vm, err := a.client.vmsClient.Get(ctx, a.client.resourceGroup, vmName, nil)
if err != nil {
return nil, fmt.Errorf("getting info for %s: %w", desc, err)
}
if vm.Properties == nil {
return nil, fmt.Errorf("determining VMID for %s", desc)
}
nodeName, igName, err = extractNodeIdentity(data, desc, vm.Properties.VMID, vm.Properties.OSProfile, vm.Tags)
if err != nil {
return nil, err
}
// Collect private IP addresses from the VM's network interface.
ni, err := a.client.nisClient.Get(ctx, a.client.resourceGroup, nodeName, nil)
if err != nil {
return nil, fmt.Errorf("getting info for %s network interface %q: %w", desc, nodeName, err)
}
addrs, challengeEndpoints, err = privateIPEndpoints(ni.Interface, desc)
if err != nil {
return nil, err
}
case vmssVMResourceType:
vmssName := res.Parent.Name
vmssIndex := res.Name
desc := fmt.Sprintf("VMSS %q VM #%s", vmssName, vmssIndex)
klog.V(2).Infof("Azure verifier for VM %q looking up Azure API object", vmLogID)
vm, err := a.client.vmssVMsClient.Get(ctx, a.client.resourceGroup, vmssName, vmssIndex, nil)
if err != nil {
return nil, fmt.Errorf("getting info for %s: %w", desc, err)
}
if vm.Properties == nil {
return nil, fmt.Errorf("determining VMID for %s", desc)View on GitHub (pinned to 4c8573c808)
Solutions
- Check the Azure credentials and subscription the verifier runs with (AZURE_* env vars / managed identity)
- Confirm the VM and its NIC still exist in the expected resource group
- Inspect the wrapped error for the ARM status code (404 vs 403 vs 429) and address accordingly
- Retry if the error indicates transient throttling (429) after the rate limit resets
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/azure/verifier.go:180 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/56db24c68f788348.
Report an issue: GitHub.