Either upgrade the VDA install version to be equal or higher than the Machine Catalog’s MinimumFunctionalLevel value, or include the VDA in a Machine Catalog with a MinimumFunctionalLevel value that supports the FunctionalLevel of the VDA.
Notes:
- The 7.9 (or newer) functional level is the default selection when creating Machine Catalogs in Studio (at time of writing).
- During Machine Catalog creation, if you select 1811 (or newer), VDAs at version 1811 or later are eligible to register.
- To check the minimum functional level (MinimumFunctionalLevel value) of a Machine Catalog, use the Get-BrokerCatalog PowerShell cmdlet. To check the functional level (FunctionalLevel value) of VDA in that Machine Catalog, use the Get-BrokerMachine PowerShell cmdlet. To retrieve a list of all functional levels supported by the Site, use the Get-BrokerServiceAddedCapability cmdlet.
In the image below:
The Machine Catalog Setup wizard will display a warning if a VDA’s FunctionalLevel value is lower than the Machine Catalog MinimumFunctionalLevel value.

Problem Cause
The error is expected and by design: A VDA with a FunctionalLevel lower than its Machine Catalog’s MinimumFunctionalLevel does not meet the minimum requirements of that MinimumFunctionalLevel, and so the VDA cannot register with the Delivery Controller.
For the Citrix Virtual Apps and Desktop 7 1811 release, an additional functional level was added:
1811 (or newer). This level is intended for use with future Citrix Virtual Apps and Desktops features. As expected, if the VDA’s FunctionalLevel value is lower than 7_20, it will not meet the minimum requirements and should not be included in a Machine Catalog with a MinimumFunctionalLevel of 7_20.
The mismatch between VDA FunctionalLevel and Machine Catalog MinimumFunctionalLevel can be seen using PowerShell. The machine is unable to register with the Broker because it’s FunctionalLevel value (7_9) is lower than its Machine Catalog MinimumFunctionalLevel (7_20). This is confirmed by the LastDeregistrationReason value “FunctionalLevelTooLowForCatalog”: