An Azure service that is used to provision Windows and Linux virtual machines.
Follow these steps to troubleshoot a virtual machine in Azure that is not starting:
- Verify VM state and recent operations
- In the Azure portal, open the VM and confirm whether it is in Running, Stopped (deallocated), Failed, or Starting state.
- Check Activity log for the VM and its resource group to see the exact error for the last Start or Restart operation. Use:
- If the VM fails to start with an allocation error
- This typically means the cluster/region has no capacity for the current size.
- Resolution from the allocation failure guidance:
- If the VM is in an availability set, stop all VMs in that availability set.
- After all are stopped, start them again one by one from the portal.
- If it still fails, retry later or consider resizing the VM to another supported size in the same region.
- If the VM appears to start but cannot be accessed (RDP/SSH)
- Confirm the VM is actually Running and not stuck.
- Use Boot diagnostics to view the screenshot and see if Windows is stuck on messages like:
- “Applying Group Policy Services policy”
- “Applying Software Installation policy”
- “Restarting”, “Shutting Down”, or “Stopping services”
- If startup is stuck on a Windows screen
- For “Applying Group Policy Services policy” or “Applying Software Installation policy”:
- Follow the guidance to collect an OS memory dump file and then create a support request so Azure support can analyze the root cause.
- For shutdown/startup stuck on “Restarting”, “Shutting Down”, or “Stopping services”:
- Use Serial Console to:
- Identify services stuck in STOP_PENDING:
Get-Service | Where-Object {$_.Status -eq "STOP_PENDING"} - Get the PID of the unresponsive service:
tasklist /svc | findstr /i <STOPPING SERVICE> - Capture a process dump with
procdump.exe(from a utility disk) and then kill the process:procdump.exe -s 5 -n 3 -ma <PID> taskkill /PID <PID> /t /f - After the OS boots, run:
dism /online /cleanup-image /restorehealth
- If this does not resolve the issue or it recurs, collect an OS memory dump and open a support request.
- Identify services stuck in STOP_PENDING:
- Use Serial Console to:
- For “Applying Group Policy Services policy” or “Applying Software Installation policy”:
- If the VM will not boot at all
- Use the recovery disk method:
- Take a snapshot of the OS disk for backup.
- Detach the OS disk from the affected VM and attach it to a healthy recovery VM.
- On the recovery VM, inspect logs, collect
memory.dmpif present, or configure dump and Serial Console as described. - Reattach the OS disk to the original VM and try to start it again.
- Use the recovery disk method:
- If the VM was recently moved between resource groups/subscriptions
- After a move, verify:
- NSG rules, route tables, and virtual network configuration in the destination resource group.
- Role assignments (RBAC) and resource locks, which do not move automatically and may need to be recreated.
- If the VM will not start but the move shows as successful, use boot diagnostics and the above boot-troubleshooting steps.
- After a move, verify:
- When to contact Azure Support
- If:
- The VM is missing from both source and destination resource groups after a move.
- The VM remains stuck in a non-bootable state after following the dump/recovery steps.
- Boot diagnostics shows a stuck policy screen and a dump is required for deeper analysis.
- In these cases, collect the OS memory dump as per guidance and then open a support request from the Azure portal.
- If:
References:
- Troubleshoot deployment issues with restarting or resizing an existing Windows VM in Azure
- Troubleshoot deployment issues when creating a new Windows VM in Azure
- Azure Windows VM shutdown is stuck on "Restarting", "Shutting Down", or "Stopping services"
- VM startup is stuck on "Applying Group Policy Services policy"
- VM startup is stuck on "Applying Software Installation policy"
- Azure virtual machine move and migration FAQ