{"record":{"id":"13054c6eadeb1d58","repo":"hashicorp/terraform","slug":"populating-details-for-s-model-properties-was","errorCode":null,"errorMessage":"populating details for %s: `model.Properties` was nil","messagePattern":"populating details for (.+?): `model\\.Properties` was nil","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/backend/remote-state/azure/storage_client_helpers.go","lineNumber":124,"sourceCode":"\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"internal-error: unrecognised endpoint type %q when building storage client\", endpointType)\n\t}\n\n\tif baseUri == nil {\n\t\treturn nil, fmt.Errorf(\"determining %s endpoint for %s: missing primary endpoint\", endpointType, ad.StorageAccountId)\n\t}\n\treturn baseUri, nil\n}\n\nfunc populateAccountDetails(accountId commonids.StorageAccountId, account storageaccounts.StorageAccount) (*AccountDetails, error) {\n\tout := AccountDetails{\n\t\tKind:             pointer.From(account.Kind),\n\t\tStorageAccountId: accountId,\n\t}\n\n\tif account.Properties == nil {\n\t\treturn nil, fmt.Errorf(\"populating details for %s: `model.Properties` was nil\", accountId)\n\t}\n\tif account.Properties.PrimaryEndpoints == nil {\n\t\treturn nil, fmt.Errorf(\"populating details for %s: `model.Properties.PrimaryEndpoints` was nil\", accountId)\n\t}\n\n\tprops := *account.Properties\n\tout.IsHnsEnabled = pointer.From(props.IsHnsEnabled)\n\n\tendpoints := *props.PrimaryEndpoints\n\tif endpoints.Blob != nil {\n\t\tendpoint := strings.TrimSuffix(*endpoints.Blob, \"/\")\n\t\tout.primaryBlobEndpoint = pointer.To(endpoint)\n\t}\n\tif endpoints.Dfs != nil {\n\t\tendpoint := strings.TrimSuffix(*endpoints.Dfs, \"/\")\n\t\tout.primaryDfsEndpoint = pointer.To(endpoint)\n\t}\n\tif endpoints.File != nil {","sourceCodeStart":106,"sourceCodeEnd":142,"githubUrl":"https://github.com/hashicorp/terraform/blob/c9def3e214014c1188faabfc4a5bde5095139765/internal/backend/remote-state/azure/storage_client_helpers.go#L106-L142","documentation":"populateAccountDetails (storage_client_helpers.go:124) dereferences account.Properties to read IsHnsEnabled and the primary endpoints. If the StorageAccount response from ARM has a nil Properties, there is nothing to read and the helper aborts defensively.","triggerScenarios":"ARM GET on the storage account returns a model whose Properties field is nil, which the populate function cannot process.","commonSituations":"API-version skew between the bundled go-azure-sdk and the cloud; partial or error responses; sovereign/private cloud returning a reduced shape.","solutions":["Retry; if persistent, inspect the raw GET response for the account.","Confirm the storage account exists and the identity can read it.","Update terraform to a version whose Azure SDK matches your cloud.","If it recurs, report the account ID and ARM response to maintainers."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# confirm the account returns a Properties object\naz storage account show --name <acct> --resource-group <rg> \\\n  --query \"properties\" --output tsv | grep -q '.' \\\n  || echo \"WARN: storage account Properties is empty\"","typeGuard":"// guard populateAccountDetails against a nil Properties\nfunc hasProperties(a storageaccounts.StorageAccount) bool {\n    return a.Properties != nil\n}","tryCatchPattern":null,"preventionTips":["Keep the terraform/SDK version aligned with the target cloud.","Retry once for transient ARM inconsistency.","Report persistent nil-Properties responses with account details."],"tags":["azure","storage","arm","sdk"],"analyzedSha":"c9def3e214014c1188faabfc4a5bde5095139765","analyzedAt":"2026-08-07T15:39:49.278Z","schemaVersion":2},"datasetVersion":"2026-08-07T21:17:07.882Z"}