116

I use a Windows 10 machine remotely at work. Both the local and remote machine are in the same ISP network (not same local network, but same ISP). I've been using it like that for almost a year now and I had never experienced absolutely any issues.

Until recently. I don't know if anything specific triggered this behavior, but I feel that it started happening after I upgraded the remote to W10 1903. I later upgraded the local one as well and I feel that it only made the problem worse (but I don't really have any data).

From time to time, the session will freeze - the image stops updating. However, what I type and mouse clicks are still being sent. No error message is shown whatsoever, the image simply freezes. To make it work again, I have to close and re-open the session. Everything that I had typed and/or clicked while it was frozen is there.

Is there any way I can debug this?

117

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.

| improve this answer | |
  • 4
    Thank you! Been using RDP for over a decade and never had issues until 1903. I am keeping my fingers crossed that this is my solution! – user0000001 Sep 27 '19 at 13:10
  • 1
    Many thanks, working well again for a few days now, after running that on the client! Here the problem started after the RDP host was upgraded to 1903 (client is still 1809). – stevek_mcc Oct 2 '19 at 16:12
  • 2
    Thanks! Haven't had a freeze for over a day now, what a relief. I was restarting RDP about 20 times a work day, absolutely horrible experience. I assume following the instructions in this post lets you turn off the UDP protocol by policy setting. – adabyron Oct 2 '19 at 22:38
  • 7
    This is still broken in Windows 10 1909. (I updated my server from Windows 7 and this problem started at that point). The UDP workaround prevents the freezing, but ultimately UDP is preferable for this protocol. – derek1284 Jan 14 at 14:21
  • 5
    How can RDP be broken and this not be a major issue given how central RDP is to Windows? – Mr. Boy Apr 8 at 12:17
51

Encountered this with Windows 10 (1903 and 1909).

Manifestations of the problem:

  1. RDP session updates oddly, distorting audio and video.

  2. 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.

  1. Partial work-around: Improve network connectivity.
    A direct local connection may be relatively reliable.

  2. Partial work-around: Reduce network strain.
    Reducing RDP session settings, avoiding audio, and avoiding video seem to help.

  3. 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):

    1. 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
             → Enabled

    2. On 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 TCP

    3. Not 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:

  1. CVE-2019-1181 | Remote Desktop Services Remote Code Execution Vulnerability;

  2. 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!

| improve this answer | |
  • Ugh, just had my first freeze under TCP-only, so I guess it's still just a partial work-around. A pretty good partial, though. – Nat Mar 14 at 22:10
  • Not long after posting this, a client of mine received what (according to the update logs) appears to have been KB4551762 (2020-03-12). Since receiving this update, RDP has been significantly better. – Nat Mar 19 at 0:06
  • 1
    not for me with that update. However I'm using RDP over SSTP VPN - I think VPN within this can also cause some issues. – Janis Veinbergs Mar 25 at 19:43
  • 1
    I did this manually on my local and remote PC's. Usually anytime I would compile my apps the output log of the compile would cause the session to freeze almost immediately. This solved my problem by disabling UDP. – chdev77 Apr 17 at 2:42
  • 1
    And in case you're running Win10 Home, a helpful link to get gpedit.msc enabled (because it's not there by default): itechtics.com/enable-gpedit-windows-10-home – NateJ Jun 18 at 23:44
2

For me, connecting with Remote Desktop over VPN, the fix seems to be to disable Persistent bitmap caching under Show Options >> Local Experience

options dialog

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.

| improve this answer | |
1

I have had this issue for several weeks. I believed it to coincide with my laptop (that I'm connecting too) coming under heavy load.

This made me think that its possibly a result of the laptop throttling itself and loosing packets/connection, possibly as a result of prioritizing other things..

Yesterday I placed my laptop on 3 upside down shot glasses and aimed a fan at it to keep it cool.

I have not had a disconnect since. So from getting this issue at least 10 times per day I now have 0 cases in 2 days.

Not a real fix, but possibly something to keep in mind as a temporary workaround.

| improve this answer | |
0

The UDP rule looks like it works but the performance will decrease a lot, I decided to continue researching for more cases, and I found this being related with mine.

SOLVED: Found that when the default option of passing through "Smart cards" was checked, the RDP session would freeze shortly after being established. When that was unchecked from RDP's Local Resources tab, problem went away. Why would Smart cards (which we don't use at my place of employment) cause such an issue? I am not sure how Smart Card would in any way impact an RDP session, but as part of moving to Windows 10, we have also started using Microsoft Group Policy recommended baseline settings, which MAY well include some sort of setting, or lack of setting that might have a bearing on this. Either way, sharing in case others encounter this issue.

| improve this answer | |
  • 3
    Note: I started encountering this problem despite already having the check-box for smart cards unchecked, so this may not be a full solution. – Nat Mar 13 at 23:05
  • 1
    Same as @Nat, I have Smart Cards disabled, yet this issue can still occur, so your solution doesn't solve the issue completely. – Matty Brown Apr 2 at 8:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.