A Microsoft desktop and app virtualization service that runs on Azure. Previously known as Windows Virtual Desktop.
The ms-avd:connect URI currently requires the resourceid parameter to be the ID of a published resource (desktop or RemoteApp application), not the application group or host pool. Using the application group or host pool resource ID leads to TenantDiscoveryFailed, which matches the behavior described.
From the documented URI scheme, resourceid is treated as the identifier of the specific resource the client should launch, while workspaceId identifies the workspace:
ms-avd:connect?workspaceId=<workspaceId>&resourceid=<resourceId>&username=<userUPN>&version=0
There is no support documented for using an application group ID or host pool ID in place of the application (RemoteApp) or desktop resource ID. The parameter name resourceid is generic, but in practice it must be a resource that the client can enumerate and launch from the workspace feed, which is why an individual application ID works and the application group ID does not.
For personal host pools, even though the specific VM/session host is chosen based on the user’s UPN, the launch still targets a specific published resource (desktop or app) in the feed. That is why any valid application ID in the group works, but non-resource IDs (app group or host pool) fail.
Given the current documented behavior and limitations of the URI scheme, the workaround of maintaining at least one stable application resource ID in the application group is consistent with how the client expects resourceid to be used. The platform does not expose a way (via ms-avd:connect) to launch purely by application group or host pool ID while relying only on UPN for routing.
If avoiding an extra VM is important, consider:
- Publishing a single “utility” RemoteApp in the application group that is not tied to a dedicated VM but is part of the same personal host pool pattern, and using its resource ID as the stable
resourceid. - Automating URI regeneration and distribution whenever Terraform recreates the applications, so that a current application resource ID is always used.
However, both approaches still rely on the fundamental requirement that resourceid be a valid published resource in the workspace.
References:
- Uniform Resource Identifier schemes with the Remote Desktop client for Azure Virtual Desktop
- Application delivery considerations for Azure Virtual Desktop workloads
- Microsoft.DesktopVirtualization applicationGroups/applications 2022-09-09 (deployment-language-terraform)
- Microsoft.DesktopVirtualization applicationGroups/applications 2021-07-12 (deployment-language-terraform)
- Preferred application group type behavior for pooled host pools in Azure Virtual Desktop