{"record":{"id":"e84d9e9453c43511","repo":"kubernetes/kops","slug":"creating-vmss-vms-client-w","errorCode":null,"errorMessage":"creating VMSS VMs client: %w","messagePattern":"creating VMSS VMs client: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/nodeidentity/azure/client.go","lineNumber":61,"sourceCode":"\t\treturn nil, fmt.Errorf(\"error querying instance metadata: %s\", err)\n\t}\n\tif metadata.SubscriptionID == \"\" {\n\t\treturn nil, fmt.Errorf(\"empty subscription ID\")\n\t}\n\n\tcred, err := azidentity.NewDefaultAzureCredential(nil)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"creating identity: %w\", err)\n\t}\n\n\tvmClient, err := compute.NewVirtualMachinesClient(metadata.SubscriptionID, cred, nil)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"creating VMs client: %w\", err)\n\t}\n\n\tvmssClient, err := compute.NewVirtualMachineScaleSetVMsClient(metadata.SubscriptionID, cred, nil)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"creating VMSS VMs client: %w\", err)\n\t}\n\n\treturn &client{\n\t\tvmClient:   vmClient,\n\t\tvmssClient: vmssClient,\n\t}, nil\n}\n\nfunc (c *client) getVMTags(ctx context.Context, providerID string) (map[string]*string, error) {\n\tif !strings.HasPrefix(providerID, \"azure://\") {\n\t\treturn nil, fmt.Errorf(\"unknown providerID : %s\", providerID)\n\t}\n\n\tres, err := arm.ParseResourceID(strings.TrimPrefix(providerID, \"azure://\"))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error parsing providerID: %v\", err)\n\t}\n","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/pkg/nodeidentity/azure/client.go#L43-L79","documentation":"newClient constructs the armcompute VirtualMachineScaleSetVMsClient after the VM client. If SDK construction fails, the error is wrapped with 'creating VMSS VMs client'. Like the VM client, this is local construction and usually reflects invalid subscription input or an SDK issue.","triggerScenarios":"compute.NewVirtualMachineScaleSetVMsClient(metadata.SubscriptionID, cred, nil) returns a non-nil error — typically an invalid subscription ID format or SDK-level initialization failure.","commonSituations":"Malformed subscription ID from a partial IMDS response; SDK version incompatibilities in the compute arm package; identical root causes to the VMs client error since both take the same inputs.","solutions":["Verify metadata.SubscriptionID is a valid GUID (the same value just succeeded for the VM client, so this is rare)","Check go.mod / vendor for mixed azure-sdk-for-go versions; run go mod tidy and rebuild","Inspect the wrapped error for the exact failure reason","If transient SDK/resolver issues, retry cluster node startup"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if _, err := uuid.Parse(subscriptionID); err != nil {\n    return fmt.Errorf(\"invalid azure subscription ID %q: %w\", subscriptionID, err)\n}","typeGuard":null,"tryCatchPattern":"if err != nil {\n    return fmt.Errorf(\"creating VMSS VMs client: %w\", err)\n}","preventionTips":["Use the same validated subscription ID for all compute clients","Keep azure-sdk-for-go compute module versions consistent","Rebuild with go mod tidy if SDK versions drift"],"tags":["azure","sdk","vmss","configuration"],"backgroundTag":"azure-sdk-client-initialization-failed","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"}