Introduction

Azure Virtual Machines fail to start. VMs stuck in starting state, deployment fails, or VM shows failed status.

Symptoms

VM failed:

```bash az vm show -g MyResourceGroup -n MyVM --query "instanceView.statuses"

[ { "code": "ProvisioningState/failed/InternalOperationError", "displayStatus": "Provisioning failed", "message": "Allocation failed." } ] ```

Allocation failure:

bash
Allocation failed. We do not have sufficient capacity for the requested VM size.

Deployment failed:

bash
Deployment failed. CorrelationId: xxx-xxx-xxx

Common Causes

  1. 1.No capacity - Region has no capacity for VM size
  2. 2.Quota exceeded - Subscription quota limit reached
  3. 3.VM size unavailable - Size not available in region
  4. 4.Resource locked - Resource group has lock
  5. 5.Image issue - VM image not available
  6. 6.Network issue - Subnet or NSG misconfigured
  7. 7.Cost limit - Spending limit reached

Step-by-Step Fix

Step 1: Check VM Status

```bash az vm show -g MyResourceGroup -n MyVM --query "instanceView.statuses"

az vm get-instance-view -g MyResourceGroup -n MyVM

az vm list --query "[?name=='MyVM']"

# Check power state: az vm show -g MyResourceGroup -n MyVM --query "powerState" ```

Step 2: Check Allocation Status

```bash az vm deallocate -g MyResourceGroup -n MyVM

az vm start -g MyResourceGroup -n MyVM

# Check activity log: az monitor activity-log list \ --resource-group MyResourceGroup \ --caller $(az account show --query user.name -o tsv) \ --max-events 10 ```

Step 3: Check VM Size Availability

```bash # List available sizes in region: az vm list-sizes --location eastus -o table

# List sizes for specific VM: az vm list-sizes --location eastus --query "[?name=='Standard_D2s_v3']"

# Resize VM: az vm resize -g MyResourceGroup -n MyVM --size Standard_D2s_v3

# Check VM size: az vm show -g MyResourceGroup -n MyVM --query "hardwareProfile.vmSize" ```

Step 4: Check Subscription Quota

```bash # List usage: az vm list-usage --location eastus -o table

# Check specific quota: az vm list-usage --location eastus --query "[?name.value=='standardDSv3Family']"

# Common limits: # - Total Regional vCPUs # - Standard DSv3 Family vCPUs # - Spot vCPUs

# Request quota increase: # Azure Portal -> Subscriptions -> Usage + quotas ```

Step 5: Try Different Region or Zone

```bash # Check available regions: az account list-locations -o table

# Check availability zones: az vm list-skus --location eastus --zone

# Create VM in different zone: az vm create \ --resource-group MyResourceGroup \ --name MyVM \ --image Ubuntu2204 \ --zone 2 ```

Step 6: Check Resource Locks

```bash # List locks: az lock list --resource-group MyResourceGroup

# Delete lock: az lock delete --name MyLock --resource-group MyResourceGroup

# Check for locks: az lock list --query "[?resourceGroup=='MyResourceGroup']" ```

Step 7: Check Disk Issues

```bash # Check disk: az disk show -g MyResourceGroup -n MyDisk

# Check disk state: az disk show -g MyResourceGroup -n MyDisk --query "diskState"

# List VM disks: az vm show -g MyResourceGroup -n MyVM --query "storageProfile"

# Create new disk from snapshot if disk corrupted: az disk create \ --resource-group MyResourceGroup \ --name MyNewDisk \ --source /subscriptions/.../snapshots/MySnapshot ```

Step 8: Check Network Configuration

```bash # Check NIC: az network nic show -g MyResourceGroup -n MyVMNic

# Check NSG: az network nsg show -g MyResourceGroup -n MyNSG

# Check subnet: az network vnet subnet show \ --resource-group MyResourceGroup \ --vnet-name MyVNet \ --name MySubnet

# Check if subnet has address space: az network vnet show -g MyResourceGroup -n MyVNet --query "subnets" ```

Step 9: Check Boot Diagnostics

```bash # Enable boot diagnostics: az vm boot-diagnostics enable \ --resource-group MyResourceGroup \ --name MyVM \ --storage https://mystorage.blob.core.windows.net/

# Get boot diagnostics: az vm boot-diagnostics get-boot-log \ --resource-group MyResourceGroup \ --name MyVM

# Check serial console output: az vm boot-diagnostics get-boot-log-uris \ --resource-group MyResourceGroup \ --name MyVM ```

Step 10: Recreate VM

```bash # Capture VM as image: az vm deallocate -g MyResourceGroup -n MyVM az vm generalize -g MyResourceGroup -n MyVM az image create -g MyResourceGroup -n MyImage --source MyVM

# Create new VM from image: az vm create \ --resource-group MyResourceGroup \ --name MyNewVM \ --image /subscriptions/.../images/MyImage

# Or restore from backup: az backup restore restore-disks \ --resource-group MyResourceGroup \ --vault-name MyVault \ --container-name MyContainer \ --item-name MyVM \ --rp-name MyRecoveryPoint ```

Azure VM Not Starting Checklist

CheckCommandExpected
VM statusaz vm showPowerState/running
Size availabilityaz vm list-sizesSize available
Quotaaz vm list-usageWithin limits
Locksaz lock listNo blocking locks
Disk stateaz disk showAttached
Boot diagnosticsboot-diagnosticsCheck for errors

Verification

```bash az vm show -g MyResourceGroup -n MyVM --query "instanceView.statuses"

az vm list-sizes --location eastus --query "[?name=='Standard_D2s_v3']"

az vm list-usage --location eastus --query "[?name.value=='standardDSv3Family']"

az vm boot-diagnostics get-boot-log -g MyResourceGroup -n MyVM

ssh user@public-ip ```

  • [Fix Azure VM Connection Failed](/articles/fix-azure-vm-connection-failed)
  • [Fix AWS EC2 Instance Not Starting](/articles/fix-aws-ec2-instance-not-starting)
  • [Fix Azure Resource Group Not Found](/articles/fix-azure-resource-group-not-found)
  • [Technical troubleshooting: Fix Azure Aks Pod Crashloopbackoff Issue in Azure](azure-aks-pod-crashloopbackoff)
  • [Technical troubleshooting: Fix Azure Api Management Policy Expression Runtime](azure-api-management-policy-expression-runtime-error)
  • [Technical troubleshooting: Fix Azure App Configuration Feature Flag Not Refre](azure-app-configuration-feature-flag-not-refreshing)
  • [Technical troubleshooting: Fix Azure App Service 503 Always On Disabled Issue](azure-app-service-503-always-on-disabled)
  • [Technical troubleshooting: Fix Azure Application Gateway Err SSL Unrecognized](azure-application-gateway-err-ssl-unrecognized-name-alert)

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "TechArticle", "headline": "Fix Azure VM Not Starting", "description": "Troubleshoot Azure VM not starting. Check size, resources, config.", "url": "https://www.fixwikihub.com/fix-azure-vm-not-starting", "publisher": { "@type": "Organization", "name": "FixWikiHub", "url": "https://www.fixwikihub.com" }, "author": { "@type": "Person", "name": "FixWikiHub Editorial Team" }, "datePublished": "2026-04-12T00:45:28.867Z", "dateModified": "2026-04-12T00:45:28.867Z" } </script>