Citrix Cloud: Unable to create/update machine catalog with the error "No facility available for disk upload. Unable to create any functioning volume service VMs. The given key was not present in the dictionary"

Citrix Cloud: Unable to create/update machine catalog with the error "No facility available for disk upload. Unable to create any functioning volume service VMs. The given key was not present in the dictionary"

book

Article ID: CTX318026

calendar_today

Updated On:

Description

In rare conditions, you may be unable to create or update a machine catalog hosted on AWS. On analyzing the CDF traces, you may find an snippet similar to the one below.

73564371 0 12:41.4 53848 3220 1 RemoteHCLServerLog 1 Error [AWS]: VolumeServiceManager.ClaimSlot: No volume workers created after signalling unmet demand. Assuming dead volume service.
73564372 0 12:41.4 53848 3220 1 RemoteHCLServerLog 1 Error "[AWS]: PluginMachineManager.CreateDiskWithContent: There is no available service for populating the disk 'prepare-identity'. Details: PluginUtilities.Exceptions.NoDiskContentTransferServiceException: No facility available for disk upload. Unable to create any functioning volume service VMs. The given key was not present in the dictionary. ---> PluginUtilities.Exceptions.WrappedPluginException: Unable to create any functioning volume service VMs. The given key was not present in the dictionary. ---> PluginUtilities.Exceptions.WrappedPluginException: The given key was not present in the dictionary.
— End of inner exception stack trace —
— End of inner exception stack trace —
at CloudCommon.VolumeService.VolumeServiceManager.WriteDiskDataToVolume(String availabilityZoneId, String targetVmId, String volumeId, IStreamVirtualDisk diskData)
at CloudCommon.CloudPluginBase.PluginMachineManager.CreateDiskWithContent(String vmId, String diskName, Int32 diskIndex, IStreamVirtualDisk diskData, IHypAvailabilityZone zone, IVolumeServiceState volumeServiceState)"
73564374 2 12:41.5 53848 3220 1 RemoteHCLServerLog 1 Error "[AWS]: PluginMachineManager.CreateCompleteVM: Error while attempting to create VM (name='Preparation - TESTING0MULTISESSION-29THAPRIL - 7qRw1h7ZUEGuD6qljZE47g', id='i-05481da2de3c21cd0'). Exception: 'PluginUtilities.Exceptions.NoDiskContentTransferServiceException: No facility available for disk upload. Unable to create any functioning volume service VMs. The given key was not present in the dictionary. ---> PluginUtilities.Exceptions.WrappedPluginException: Unable to create any functioning volume service VMs. The given key was not present in the dictionary. ---> PluginUtilities.Exceptions.WrappedPluginException: The given key was not present in the dictionary.
— End of inner exception stack trace —
— End of inner exception stack trace —
at CloudCommon.VolumeService.VolumeServiceManager.WriteDiskDataToVolume(String availabilityZoneId, String targetVmId, String volumeId, IStreamVirtualDisk diskData)
at CloudCommon.CloudPluginBase.PluginMachineManager.CreateDiskWithContent(String vmId, String diskName, Int32 diskIndex, IStreamVirtualDisk diskData, IHypAvailabilityZone zone, IVolumeServiceState volumeServiceState)
at CloudCommon.CloudPluginBase.PluginMachineManager.ProcessDisks(String vmId, Dictionary`2 disks, IHypAvailabilityZone zone, IVolumeServiceState volumeServiceState)
at CloudCommon.CloudPluginBase.PluginMachineManager.CreateCompleteVM(String name, IVMMetadata metadata, String serviceOffering, IList`1 securityGroups, IList`1 disks, IVolumeServiceState volumeServiceState, Boolean enableNetwork, INetworkInterfaceDetails networkInterfaceDetails, IHypAvailabilityZone zone, Boolean dedicatedTenancy, CloudTenancy tenancyType, Boolean tagVms, String customProperties)'"
73564471 0 12:48.3 53848 3220 1 RemoteHCLServerLog 1 Error "CloudRunQueue-4 - caught exception PluginUtilities.Exceptions.NoDiskContentTransferServiceException: No facility available for disk upload. Unable to create any functioning volume service VMs. The given key was not present in the dictionary. ---> PluginUtilities.Exceptions.WrappedPluginException: Unable to create any functioning volume service VMs. The given key was not present in the dictionary. ---> PluginUtilities.Exceptions.WrappedPluginException: The given key was not present in the dictionary.
— End of inner exception stack trace —
— End of inner exception stack trace —
at CloudCommon.VolumeService.VolumeServiceManager.WriteDiskDataToVolume(String availabilityZoneId, String targetVmId, String volumeId, IStreamVirtualDisk diskData)
at CloudCommon.CloudPluginBase.PluginMachineManager.CreateDiskWithContent(String vmId, String diskName, Int32 diskIndex, IStreamVirtualDisk diskData, IHypAvailabilityZone zone, IVolumeServiceState volumeServiceState)
at CloudCommon.CloudPluginBase.PluginMachineManager.ProcessDisks(String vmId, Dictionary`2 disks, IHypAvailabilityZone zone, IVolumeServiceState volumeServiceState)
at CloudCommon.CloudPluginBase.PluginMachineManager.CreateCompleteVM(String name, IVMMetadata metadata, String serviceOffering, IList`1 securityGroups, IList`1 disks, IVolumeServiceState volumeServiceState, Boolean enableNetwork, INetworkInterfaceDetails networkInterfaceDetails, IHypAvailabilityZone zone, Boolean dedicatedTenancy, CloudTenancy tenancyType, Boolean tagVms, String customProperties)
at CloudCommon.CloudPluginBase.PluginHypervisor.<>c_DisplayClass39_0.<BeginCreateCompleteVM>b_0(PluginMachineManager manager)
at Citrix.HypervisorCommunicationsLibrary.TaskRunItem`2.Run(T manager)
at HypervisorsCommon.HCL.TaskRunner`1.Run()"

Resolution

To resolve this issue, add the support for the missing AWS region by executing the following PowerShell command --

Set-HypVolumeServiceConfiguration –VolumeServiceConfigurationName SiteDefault –ConnectionType AWS –RegionName <REGION NAME> –BaseLinuxTemplateId <AMI ID>

Problem Cause

This issue can occur if the AWS region is not a part regions list. This can typically happen if it's a new region introduced by AWS or you are using an explicit VPC instead of the default one.