Citrix VMware Horizon

Introducing BgAssist

VDI is a tricky beast to tame with so many factors involved in deploying a successful service. More so, creating a successful service with an outstanding end-user experience is even more difficult. In a bureaucratic workplace with resource, time, and talent constraints, I often feel that the needs of a single user are secondary or forgotten about by the nature of the process. It’s easier to make broad strokes for the largest user communities over individuals with diverse and specific needs.

With these challenges in mind, I’ve created BgAssist as an open-source project to help VDI administrators create better end-user experiences. Even if not groundbreaking or revolutionary, it’s a step forward in pushing the capabilities of virtual desktop service delivery.

BgAssist (complementing the renowned BgInfo) is a small footprint executable to trigger desktop background refreshes in VDI environments and improve user experience.

The application addresses two challenges.

Desktop backgrounds don’t play well with windowed, non-standard screen ratio VDI clients. A fixed ratio background image that is anything other than a solid color distorts the moment the client breaks the ratio or changes screen resolution.

Here’s an example of BgAssist addressing this challenge:

The VDI session screen ratio and resolution can be dynamic based on users’ needs while maintaining a seamless experience and corporate branding guidelines.

Corporate branding and marketing are difficult to balance with accessibility. Inside the walled garden of corporate enterprise, users end up lacking choice in desktop background options, often disregarding the accessibility needs of individual users.

Here’s an example of BgAssist addressing this challenge:

Corporate branding guidelines are maintained while providing the user with choices to suit their preference, desired functionality, or needs.

As not to reinvent industry-accepted tools, BgAssist expands on the use of BgInfo to generate desktop background images. If you’ve already deployed BgInfo, BgAssist is a natural fit to further augment its use by monitoring the session and triggering refreshes at the appropriate time.

While everything comes at a cost, BgAssist addresses these challenges utilizing nearly zero CPU and ~12 MB of RAM per session.

Creating an open-source project to give back to the community that’s given me so much over the course for my career has always a goal of mine. While in its infancy and I’m certain that there are a few bugs, I’m incredibly proud to give back: BgAssist. Head over to the GitHub project page to dive into the technical details.


Citrix “Cannot start app. Please contact your help desk.”

After standing up a new Citrix site from scratch, we found Citrix Receiver/Workspace apps configured on client workstations configured with SSO couldn’t launch applications.

After a few hours of checking event logs and enabling every Receiver/Workspace logging feature, I only found very generic errors. The most “relevant” error found in the Receiver/Workspace app log was:

Monday, January 13, 2020/4:24:30 PM ICA launch failed from delivery service at https://storefront.url/Citrix/Store/resources/v2/WERbunchofjunkBJQdfdBf4tUHdbWUgSGdbHRoIE1h/launch/ica; reason: GeneralAppLaunchError
Monday, January 13, 2020/4:24:30 PM Got Comms Error
Monday, January 13, 2020/4:24:30 PM Request failed: General error

Searching this error lead me to

The Citrix article explains how to prepare a site for Pass-Through Authentication. Surprisingly, this parameter could be modified via the GUI in XenApp 6.5, but not newer.

Step two provides a PowerShell command which you can run on a site Delivery Controller:

asnp Citrix*
Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $True

To validate the parameter took, run:


Validate TrustRequestsSentToTheXmlServicePort is set to True, then refresh Receiver/Workspace app and relaunch your application.


Citrix USB Error “Device appears to be in use and cannot be attached”

Device appears to be in use and cannot be attached. Do you want to force close the deivce and redirect.

If you’re attempting to redirect a USB device to Citrix and receive the error “Device appears to be in use and cannot be attached,” here’s how to suppress it. As the error indicates, the USB device that you’re attempting to redirect is in use on your local system and Receiver cannot redirect it without forcefully doing so. Depending on your particular scenario, this may or may not be a good idea. If you definitely want suppress this error, set the following Registry entry:

64 Bit:

  • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Citrix\ICA Client\GenericUSB]
  • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\GenericUSB]

32 Bit:

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Citrix\ICA Client\GenericUSB]