Resolve errors for SKU not available

This article describes how to resolve the SkuNotAvailable error.

Symptom

When deploying a resource (typically a virtual machine), you receive the following error code and error message:

Code: SkuNotAvailable
Message: The requested tier for resource '<resource>' is currently not available in location '<location>' 
for subscription '<subscriptionID>'. Please try another tier or deploy to a different location.

Cause

You receive this error when the resource SKU you have selected (such as VM size) is not available for the location you have selected.

Solution 1 - PowerShell

To determine which SKUs are available in a region, use the Get-AzureRmComputeResourceSku command. Filter the results by location. You must have the latest version of PowerShell for this command.

Get-AzureRmComputeResourceSku | where {$_.Locations -icontains "southcentralus"}

The results include a list of SKUs for the location and any restrictions for that SKU.

ResourceType                Name      Locations Restriction                      Capability Value
------------                ----      --------- -----------                      ---------- -----
availabilitySets         Classic southcentralus             MaximumPlatformFaultDomainCount     3
availabilitySets         Aligned southcentralus             MaximumPlatformFaultDomainCount     3
virtualMachines      Standard_A0 southcentralus
virtualMachines      Standard_A1 southcentralus
virtualMachines      Standard_A2 southcentralus

Solution 2 - Azure CLI

To determine which SKUs are available in a region, use the az vm list-skus command. You can then use grep or a similar utility to filter the output.

$ az vm list-skus --output table
ResourceType      Locations           Name                    Capabilities                       Tier      Size           Restrictions
----------------  ------------------  ----------------------  ---------------------------------  --------  -------------  ---------------------------
availabilitySets  eastus              Classic                 MaximumPlatformFaultDomainCount=3
avilabilitySets   eastus              Aligned                 MaximumPlatformFaultDomainCount=3
availabilitySets  eastus2             Classic                 MaximumPlatformFaultDomainCount=3
availabilitySets  eastus2             Aligned                 MaximumPlatformFaultDomainCount=3
availabilitySets  westus              Classic                 MaximumPlatformFaultDomainCount=3
availabilitySets  westus              Aligned                 MaximumPlatformFaultDomainCount=3
availabilitySets  centralus           Classic                 MaximumPlatformFaultDomainCount=3
availabilitySets  centralus           Aligned                 MaximumPlatformFaultDomainCount=3

Solution 3 - Azure portal

To determine which SKUs are available in a region, use the portal. Log in to the portal, and add a resource through the interface. As you set the values, you see the available SKUs for that resource. You do not need to complete the deployment.

available SKUs

Solution 4 - REST

To determine which SKUs are available in a region, use the REST API for virtual machines. Send the following request:

GET
https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/skus?api-version=2016-03-30

It returns available SKUs and regions in the following format:

{
  "value": [
    {
      "resourceType": "virtualMachines",
      "name": "Standard_A0",
      "tier": "Standard",
      "size": "A0",
      "locations": [
        "eastus"
      ],
      "restrictions": []
    },
    {
      "resourceType": "virtualMachines",
      "name": "Standard_A1",
      "tier": "Standard",
      "size": "A1",
      "locations": [
        "eastus"
      ],
      "restrictions": []
    },
    ...
  ]
}

If you are unable to find a suitable SKU in that region or an alternative region that meets your business needs, submit a SKU request to Azure Support.