Skip to content

Windows 11: RDP Disconnects Randomly — Force TCP (Disable UDP)

Your RDP session to a Windows 11 machine freezes or drops seemingly at random — sometimes after a minute, sometimes after hours. The machine itself keeps running fine, and reconnecting usually works (until it doesn't). The problem often appears out of nowhere after an upgrade from Windows 10, on physical machines and VMs alike.

Why This Happens

Since RDP 8, a Remote Desktop session does not run over a single TCP connection. The client and server negotiate a hybrid transport: TCP for the control channel and, whenever possible, UDP for the graphics stream — UDP tolerates packet loss better and feels smoother on flaky links.

The catch: Windows 11 shipped with bugs in exactly this UDP path. Microsoft confirmed the issue for 22H2, where sessions freeze and disconnect once the UDP channel is in use, and 24H2 introduced further UDP-related disconnects (typically ~65 seconds after connecting). Windows 10 negotiated the same transport without these bugs — which is why the problem seems to appear "out of nowhere" after an upgrade.

Forcing RDP back to pure TCP avoids the buggy code path entirely. The session stays fully functional; on a LAN the difference is imperceptible. Only on high-latency or lossy links (VPN over mobile, Wi-Fi with poor signal) may scrolling and video feel slightly less smooth.


Confirm the Diagnosis First

Two quick checks before changing anything:

  1. Rule out the network. Run a continuous ping against the machine from your client and wait for the next drop. If the ping keeps answering while the RDP session dies, the network and the machine are fine — the RDP transport is the suspect.
  2. Check whether UDP is in use. Click the connection quality icon in the RDP session's title bar (Windows client) or connection bar. If it reports "UDP is enabled", this article applies. On the server, the same information is in the Event Viewer under Applications and Services Logs → Microsoft → Windows → RemoteDesktopServices-RdpCoreTS → Operational — Event ID 131 logs the transport of each incoming connection.

The reason code for each disconnect is logged under TerminalServices-LocalSessionManager → Operational on the server — useful if you want to correlate drops with a cause instead of guessing.


The Fix: Force RDP Over TCP (Server-Side)

Apply this on the Windows 11 machine you connect to. Server-side is the right place: it works no matter what connects — a Windows client, the macOS Windows App, or a mobile client — and macOS has no client-side toggle anyway.

Option A: Group Policy (Pro/Enterprise)

  1. Run gpedit.msc.
  2. Navigate to Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Connections.
  3. Open Select RDP transport protocols, set it to Enabled, and choose Use only TCP in the dropdown.

If the policy list appears oddly short, check View → Filter On — an active filter hides most entries.

Option B: Registry (same effect)

The policy above writes a single registry value, so you can set it directly. From an elevated command prompt:

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v SelectTransport /t REG_DWORD /d 1 /f

SelectTransport accepts three values: 0 uses both UDP and TCP (default), 1 forces TCP only, 2 prefers either (policy reference).

Apply and Restart

gpupdate /force

Then reboot the machine — or restart the Remote Desktop Services service, which kicks your current session.


Verify

Reconnect and check the connection quality icon again: it must no longer mention UDP. Server-side, the next Event ID 131 in RdpCoreTS → Operational should show TCP as the accepted transport. To confirm the registry value is in place:

reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v SelectTransport

Then give it time. This bug is intermittent — judge the fix over days of normal use, not over a single session.


Client-Side Alternative (Windows Clients Only)

If you cannot change the server, a Windows client can refuse UDP on its end. On the client machine, from an elevated command prompt:

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client" /v fClientDisableUDP /t REG_DWORD /d 1 /f

This affects every outgoing RDP connection from that client. It does not help macOS or mobile users — for those, use the server-side fix above.


Still Dropping?

  • Sessions hang specifically when reconnecting to an existing session (fresh logins work): a separate Windows 11 issue. In the same GPO folder, set Select network detection on the server to Turn off Connect Time Detect and Continuous Network Detect.
  • The machine is a Proxmox VM and the guest itself freezes (ping dies): work through Proxmox — Windows 11 VM: RDP Session Drops — CPU limits, display adapter, ballooning, and VirtIO driver issues live there.
  • After an in-place upgrade from Windows 10 in a VM, reinstall the current VirtIO guest drivers — the upgrade keeps the old ones.