In this post, we will see Deployment Operation Failed errors related to WVD v2. We have already learned how to add new session hosts to the existing host pool (WVD v2). Here is the document to help to Add New Personal VMs to Existing Host Pool | WVD v1 2019 Release.
This post is applicable only for the Windows Virtual Desktop spring 2020 release (a.k.a WVD v2). The Spring 2020 update uses the Azure Resource Manager (ARM) Windows Virtual Desktop objects.
Host sessions are nothing but virtual machines part of the host pool. I’m planning to add new two-session hosts to host pools using Windows Virtual Desktop new experience (a.k.a WVD v2).
NOTE! – Learn more about WVD v2 ARM model architecture.
TL;DR
Add Session Hosts

- Click on Generate New Key

- Set expiry for the key

- Once the Registration Key is generated, click on the X symbol as shown the following picture.

- Click on Add

- Click on Next button to continue
- Change validation environment option from Yes to NO if you are deploying WVD VM to production users.
NOTE! – Most of the entries are automatically populated or inherited from the existing host pool configuration. You don’t have any option to change those entries.

Virtual Machine Configuration
- You have the option to change the following three things
- Resource Group
- Virtual Machine Location
- Number of VMs
NOTE! – None of the other options are editable. Those are inherited automatically from host pool setting.

Network & Security
- Select a Virtual networks – Those are logically isolated from each other in Azure. You can configure their IP address ranges, subnets, route tables, gateways, and security settings, much like a traditional network in your data center. Virtual machines in the same virtual network can access each other by default.
- Select A subnet. This is a range of IP addresses in your virtual network, which can be used to isolate virtual machines from each other or from the Internet.
- Public IP = NO
- Select Network Security Group = Basic
- Public inbound ports = NO

Domain Join Options
- Enter the Full Domain FQDN – Full domain name of the Active Directory Domain to which session host VMs are going to be joined. For example, “contoso.com” or “site1.contoso.com”.
- Enter the OU path where VMs should be located in on-prem active directory?
- Enter the details of the administrative account – This account must have access to join a device to the domain and the OU which you mentioned above.
- Click on Next Tags to continue.

- Click on Review + Create after reviewing the configuration.

- Once Validation is passed, you can click on Create option.
WVD v2 Deployment Progress
- Let’s wait until the WVD v2 session host addition process finishes.

Results Deployment Operation Failed
My deployment failed because of the following error. But if you have enough free IPs left in your subnet then there should not be an issue.
The resource operation completed with terminal provisioning state 'Failed'. Click here for details- Your deployment failed
Subnet default with address prefix 20.225.108.0/27 does not have enough capacity for 1 IP!
{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.","details":[{"code":"Conflict","message":"{\r\n \"status\": \"Failed\",\r\n \"error\": {\r\n \"code\": \"ResourceDeploymentFailure\",\r\n \"message\": \"The resource operation completed with terminal provisioning state 'Failed'.\",\r\n \"details\": [\r\n {\r\n \"code\": \"DeploymentFailed\",\r\n \"message\": \"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.\",\r\n \"details\": [\r\n {\r\n \"code\": \"BadRequest\",\r\n \"message\": \"{\\r\\n \\\"error\\\": {\\r\\n \\\"code\\\": \\\"SubnetIsFull\\\",\\r\\n \\\"message\\\": \\\"Subnet default with address prefix 20.225.108.0/27 does not have enough capacity for 1 IP addresses.\\\",\\r\\n \\\"details\\\": []\\r\\n }\\r\\n}\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}"}]}
NOTE! – I think WVD v1 was better in these terms (availability of IPs). It won’t allow you to select subnet if you don’t have free IPs available in the subnet.

FIX
- Free up IPs if that is possible from subnet (for test environments).
- Use a different subnet where IPs are available
- Repeat the steps mentioned above or try WVD Add New Session Hosts to Existing Host Pool | Registration Key