diff --git a/internal/services/storage/storage_account_queue_properties_data_plane_resource.go b/internal/services/storage/storage_account_queue_properties_data_plane_resource.go index 4a520b205143..2eaead992f61 100644 --- a/internal/services/storage/storage_account_queue_properties_data_plane_resource.go +++ b/internal/services/storage/storage_account_queue_properties_data_plane_resource.go @@ -301,6 +301,9 @@ func (s AccountQueuePropertiesResource) Create() sdk.ResourceFunc { if err != nil { return err } + if accountDetails == nil { + return fmt.Errorf("unable to locate %s", *accountID) + } supportLevel := availableFunctionalityForAccount(accountDetails.Kind, accountTier, accountReplicationType) diff --git a/internal/services/storage/storage_account_static_website_data_plane_resource.go b/internal/services/storage/storage_account_static_website_data_plane_resource.go index 022eb12ad0d3..5b1c5e9bf265 100644 --- a/internal/services/storage/storage_account_static_website_data_plane_resource.go +++ b/internal/services/storage/storage_account_static_website_data_plane_resource.go @@ -107,6 +107,9 @@ func (a AccountStaticWebsiteResource) Create() sdk.ResourceFunc { if err != nil { return err } + if accountDetails == nil { + return fmt.Errorf("unable to locate %s", *accountID) + } supportLevel := availableFunctionalityForAccount(accountDetails.Kind, accountTier, accountReplicationType) @@ -158,7 +161,7 @@ func (a AccountStaticWebsiteResource) Read() sdk.ResourceFunc { state.StorageAccountId = id.ID() accountDetails, err := storageClient.FindAccount(ctx, id.SubscriptionId, id.StorageAccountName) - if err != nil { + if err != nil || accountDetails == nil { return metadata.MarkAsGone(id) } @@ -194,7 +197,7 @@ func (a AccountStaticWebsiteResource) Delete() sdk.ResourceFunc { } accountDetails, err := storageClient.FindAccount(ctx, id.SubscriptionId, id.StorageAccountName) - if err != nil { + if err != nil || accountDetails == nil { return nil // lint:ignore nilerr If we don't find the account we can safely assume we don't need to remove the website since it must already be deleted } @@ -237,6 +240,9 @@ func (a AccountStaticWebsiteResource) Update() sdk.ResourceFunc { if err != nil { return err } + if accountDetails == nil { + return fmt.Errorf("unable to locate %s", *id) + } client, err := storageClient.AccountsDataPlaneClient(ctx, *accountDetails, storageClient.DataPlaneOperationSupportingAnyAuthMethod()) if err != nil { diff --git a/internal/services/storage/storage_blob_resource_test.go b/internal/services/storage/storage_blob_resource_test.go index fc99bfa9fd71..b625ebc9aaf5 100644 --- a/internal/services/storage/storage_blob_resource_test.go +++ b/internal/services/storage/storage_blob_resource_test.go @@ -13,6 +13,7 @@ import ( "testing" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" @@ -572,6 +573,9 @@ func (r StorageBlobResource) Destroy(ctx context.Context, client *clients.Client if err != nil { return nil, fmt.Errorf("retrieving Account %q for Blob %q (Container %q): %+v", id.AccountId.AccountName, id.BlobName, id.ContainerName, err) } + if account == nil { + return pointer.To(true), nil + } blobsClient, err := client.Storage.BlobsDataPlaneClient(ctx, *account, client.Storage.DataPlaneOperationSupportingAnyAuthMethod()) if err != nil { return nil, fmt.Errorf("building Blobs Client: %+v", err)