Azure VM Size Availability by Region: How to Check Before You Deploy

Whether a VM size is offered in a region, available to your subscription, in the zones you want, and within your quota are four separate questions. The az vm list-skus and PowerShell checks, what each restriction means, the SkuNotAvailable error, and what to check for AVD session hosts.

By David,

To see which Azure VM sizes you can deploy in a region, run az vm list-skus --location <region> --resource-type virtualMachines --output table. It lists the sizes available to your subscription in that region, with restrictions already applied. Add --all to see the sizes you're blocked from too, and --zone to see which availability zones each size supports. A size being "available" isn't the whole story, though: you also need vCPU quota for its family in that region, and Azure needs capacity at the moment you deploy.

The short version: Check three things before you plan session hosts in a region: the size is offered there and to your subscription (az vm list-skus), it's offered in the zones you want (--zone), and you have quota for its family and for the region (az vm list-usage). If a size shows as NotAvailableForSubscription, request it from Azure Support. If you get SkuNotAvailable at deploy time, try another size, zone or region.

There's no single published table of every VM size in every region that reflects your subscription, which is why Microsoft points you to these commands. Our Azure regions directory lists every region; this guide is about what you can actually deploy in one. Everything below is from Microsoft Learn as of November 2026, with each source linked.


Check VM size availability with the Azure CLI

From the SkuNotAvailable troubleshooting guide and the az vm reference:

# Sizes your subscription can use in a region
az vm list-skus --location eastus2 --resource-type virtualMachines --output table

# One family, by partial name (here every Standard_D size)
az vm list-skus --location eastus2 --size Standard_D --output table

# Include sizes you can't use, with the reason
az vm list-skus --location eastus2 --size Standard_D --all --output table

# Which availability zones each size supports
az vm list-skus --location eastus2 --resource-type virtualMachines --zone --all --output table

Microsoft says az vm list-skus "incorporates subscription level restriction, offering the most accurate information", and "by default, only SKUs without restrictions are displayed." --size accepts a partial name. The older az vm list-sizes is deprecated in favor of it.

Reading the restrictions column. With --all, a restricted size shows why, for example NotAvailableForSubscription, type: Zone, locations: eastus2, zones: 1,2,3. The REST API documents two reason codes and two restriction types (Resource SKUs - List):

FieldValuesMeaning
Reason codeNotAvailableForSubscriptionThe size exists in the region but your subscription can't deploy it
QuotaIdThe restriction comes from your subscription's offer type
Restriction typeLocationBlocked in the whole region
ZoneBlocked in the zones listed

Check with PowerShell

Get-AzComputeResourceSku -Location "eastus2" |
  Where-Object { $_.ResourceType -eq "virtualMachines" -and $_.Name -like "Standard_D*" } |
  Select-Object Name, @{n = "Zones"; e = { $_.LocationInfo.Zones -join "," } },
    @{n = "Restrictions"; e = { ($_.Restrictions | ForEach-Object { "$($_.Type):$($_.ReasonCode)" }) -join "; " } }

Each SKU's Restrictions has a Type of Location or Zone and a ReasonCode (Get-AzComputeResourceSku, SkuNotAvailable guide). In the Azure portal, See all sizes on the VM size picker shows the same information for one region.


Availability, quota and capacity are three different checks

CheckQuestionHow to checkIf it fails
SKU availabilityIs the size offered in this region and zone, to this subscription?az vm list-skusPick another size, zone or region, or ask Azure Support to enable it
QuotaDo you have enough vCPUs left in the size's family and in the region?az vm list-usage --location eastus2 --output tableRequest a quota increase
CapacityDoes Azure have the hardware free right now?Only at deploy timeRetry later, try another size or zone, or reserve capacity

Microsoft spells out the difference: "Azure checks quota and capacity separately... Even with sufficient quota, deployments can still fail if Azure doesn't have enough capacity" (VM quotas). For capacity you can count on, Microsoft points to on-demand capacity reservation.

How quota works. Each subscription has two limits per region: Total Regional vCPUs and a limit per VM size family. Both count every core "in use both allocated and deallocated", so stopped-and-deallocated session hosts still use quota. Request increases in the portal under Quotas → Compute; when a family increase is approved, "Azure will automatically increase the regional vCPU quota" (VM-family quota requests, regional quota requests). Our vCPU quota guide walks through it for AVD.


The SkuNotAvailable error

At deploy time a missing size fails with SkuNotAvailable (or InvalidTemplateDeployment from a template):

The requested size for resource '<resource ID>' is currently not available in location '<location>' zones '<zones>' for subscription '<subscription ID>'. Please try another size or deploy to a different location or zones.

Microsoft lists two causes: the size isn't available in that location or zone for your subscription, or there's no Azure Spot capacity. Its remedy: run the checks above and, "if a SKU isn't available for your subscription in a location or zone that meets your business needs, submit a SKU request to Azure Support" (SkuNotAvailable guide).


What to check for Azure Virtual Desktop session hosts

The sizes Microsoft suggests. Microsoft's session host sizing guidelines give examples in the D-series and F-series for multi-session hosts (for example D8s_v5, D16s_v5, D8as_v4, F8s_v2), a minimum of 8 vCPUs and 16 GB RAM for light to heavy workloads, and say "VMs shouldn't have more than 32 cores" (session host sizing). Check the exact size you've chosen, not just the family, in every region and zone you plan to use. For choosing a size, see the best VM size for AVD and AVD users per vCPU.

GPU sizes are the most likely to be missing. Microsoft supports the NVv3, NVv4, NVadsA10 v5 and NCasT4_v3 series for GPU-accelerated session hosts, and says NC, NCv2, NCv3, ND and NDv2 sizes "aren't generally appropriate as session hosts" (GPU acceleration). GPU families are offered in fewer regions than general-purpose ones; check them first. See GPU VMs for AVD.

Zones. If you deploy session hosts across availability zones, the size has to be available in every zone you use; --zone --all shows any zone restriction. See availability zones by region.

Quota for the whole pool, deallocated hosts included. Size the request for the largest number of hosts autoscale can run, since deallocated hosts still count. Microsoft's AVD FAQ notes that Enterprise Agreement subscriptions start with 350 vCPUs by default (AVD FAQ).


How Atlas AVD helps

Atlas AVD checks Azure quota and network readiness before its deployment wizard provisions a host pool, so a deployment doesn't fail halfway for lack of cores, and its VM provisioning flow picks sizes with your quota in mind. Capacity at deploy time is still Azure's call.


FAQ

How do I check which VM sizes are available in an Azure region?

Run az vm list-skus --location <region> --resource-type virtualMachines --output table. It shows the sizes your subscription can use there. Add --all to include restricted sizes and --zone for zone support.

What does NotAvailableForSubscription mean?

The VM size exists in that region or zone, but your subscription can't deploy it. Pick another size or region, or ask Azure Support to enable it for your subscription.

Why did my VM deployment fail with SkuNotAvailable when the size is listed?

Either the size is restricted for your subscription in that zone, or Azure didn't have capacity at that moment. Check the restrictions with --all and --zone, then try another zone, size or region.

Do deallocated VMs count against my vCPU quota?

Yes. Microsoft calculates quota on cores in use, both allocated and deallocated.

Is there a list of Azure VM sizes by region?

Microsoft's products-by-region page shows which VM families exist in each region, but only az vm list-skus or Get-AzComputeResourceSku shows what your own subscription can deploy.

Commands and behavior are from Microsoft Learn as of November 2026: SkuNotAvailable, az vm, Get-AzComputeResourceSku, Resource SKUs - List, VM quotas, VM-family quota requests, regional quota requests, session host sizing, GPU acceleration and the AVD FAQ.