Remote Desktop intermittently freezing
I also ran into this issue since July 2019 on a Windows 10 1903 acting as the client machine. The following workaround on the client works for me, so that RDP no longer freezes.
Start an elevated command prompt (run cmd.exe as administrator), and then run:
reg add "HKLM\software\policies\microsoft\windows nt\Terminal Services\Client" /v fClientDisableUDP /d 1 /t REG_DWORD
After that, restart the remote desktop client (mstsc.exe, aka Microsoft Terminal Services Client).
I'm waiting for a final fix to this issue.
Encountered this with Windows 10 (1903 and 1909).
Manifestations of the problem:
RDP session updates oddly, distorting audio and video.
RDP session hard-freezes. Client window is responsive, but the content within it is essentially a static image.
Sometimes the RDP session recovers, resuming normal function.
Other times the RDP session seems to hang indefinitely. No error messages seen; client window can be closed and restarted normally.
Speculated causation:
Seems to occur primarily when using the UDP protocol under load.
My guess is that the RDP protocol has lost some of its resilience to packets getting lost or out-of-order.
Work-arounds:
No single work-around seems complete. For example, I've had RDP completely freeze even in TCP-only mode. However, TCP-only coupled with trying to improve network connectivity or/and reducing load (such as video and audio) seems to greatly reduce the incident rate.
Partial work-around: Improve network connectivity.
A direct local connection may be relatively reliable.Partial work-around: Reduce network strain.
Reducing RDP session settings, avoiding audio, and avoiding video seem to help.Full-ish work-around: Disable UDP.
RDP seems to behave a lot better with TCP than UDP. Switching to TCP-only does seem a bit more laggy, but the lag is more ordered (which is strangely nicer than the erratic lag) and I've yet to encounter an indefinite hang.
Three ways to implement (probably mutually compatible, but probably only need to do one):On client: Local Group Policy Editor
→ Local Computer Policy
→ Computer Configuration
→ Administrative Templates
→ Windows Components
→ Remote Desktop Services
→ Remote Desktop Connection Client
→ Turn Off UDP On Client
→ EnabledOn server [untested]: Local Group Policy Editor
→ Local Computer Policy
→ Computer Configuration
→ Administrative Templates
→ Windows Components
→ Remote Desktop Services
→ Remote Desktop Session Host
→ Connections
→ Select RDP transport protocols
→ Enabled
→ Use only TCPNot recommended (tweaking Registry Editor)
Source: @robbiefan's answer.
On client: Registry Editor
→ Computer
→ HKEY_LOCAL_MACHINE
→ SOFTWARE
→ Policies
→ Microsoft
→ Windows NT
→ Terminal Services
→ Client
→ [right-click] → New → DWORD (32-bit) Value
→ Name:fClientDisableUDP
→ Value data:1
→ Base:Decimal
Note: This seems to have worked for me when I tried it, but can't verify much beyond that. I reverted this solution after trying it, preferring to rely on the Group Policy instead.
Discussion: Background
I'm fuzzy on the details, but in short, I think there was something about some bugs being discovered in the RDP protocol as implemented prior to Windows 10 1903:
CVE-2019-1181 | Remote Desktop Services Remote Code Execution Vulnerability;
CVE-2019-1182 | Remote Desktop Services Remote Code Execution Vulnerability.
Then Windows 10 1903 was meant to fix these, I think.
Apparently the new version of the RDP protocol has some issues, e.g. this one. Disabling UDP (to force TCP) seems to be a decent enough work-around, though the protocol can feel a bit laggier. That said, the older RDP protocol also had some rather obnoxious audio latency problems that seem to be a lot better now, so, personally, I'm happy about that!
For me, connecting with Remote Desktop over VPN, the fix seems to be to disable Persistent bitmap caching under Show Options >> Local Experience
Windows 10 Home build 18363 connecting to Win10 Enterprise build 18363 over Checkpoint VPN.
I tried disabling UDP as per the top voted answer but that resulted in frequent outright disconnects instead of frozen-screen symptoms.
Update: This isn't a complete fix. The freezing happens less often but still happens. I can trigger the freezing semi-"reliably" by copying dozens to hundreds of rows in Excel. Appears to be sensitive to size of the selection (smaller is less likely to freeze). Disabling clipboard under Local Resources doesn't seem to matter.