Applicable to:

Overview

AWS WorkSpaces Pool instances may terminate approximately 20 minutes after launch due to failing heartbeats. This occurs because the WorkSpaces management service attempts to resolve squid-proxy.appstream.local but fails when the system is connected to Twingate.

Cause

The underlying cause is due to a known limitation, for further information, reference KB article [Windows Client] Limitations with Multiple NICs and Split-Horizon DNS.

The WorkSpaces Pools management service performs a health check that requires resolving squid-proxy.appstream.local

Troubleshooting

To confirm this issue:

Workaround

Method 1 - Manual hosts file update

Method 2 - Scripted hosts file update

Note: this method should only be ran once and not after method 1. If you already performed method 1 or run this multiple times, you will need to manually remove all entries of squid-proxy.appstream.local in the hosts file (perform the opposite of method 1 above).

Copy-Item -Path "C:\Windows\System32\drivers\etc\hosts" -Destination "C:\Windows\System32\drivers\etc\hosts.bak" -Force
Add-Content -Path "C:\Windows\System32\drivers\etc\hosts" -Value "`r`n" -Encoding ASCII

Resolve-DnsName squid-proxy.appstream.local |
Where-Object QueryType -eq "A" |
ForEach-Object { "{0} {1}" -f $_.IPAddress, "squid-proxy.appstream.local" } |
Add-Content -Path "C:\Windows\System32\drivers\etc\hosts" -Encoding ASCII

Verify the Workaround

After performing either of the above methods, verify the file has been updated correctly. After updated, it should look something like the below when opened by Notepad.

Note:, , etc., will be the real IPs retrieved via nslookup, and will be the hostname of your desktop.

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

127.0.0.1

squid-proxy.appstream.local
squid-proxy.appstream.local
squid-proxy.appstream.local

Limitation of the Workaround