Fix An Internal Error Has Occurred in Windows Remote Desktop

Updated on Oct 31, 2026
Kimberly N
7 MINS READ
Table of Contents
Fix An Internal Error Has Occurred in RDP

When you see an internal error has occurred in RDP, Windows does not tell you why. The message is generic. It can come from your PC, your VPN, the TLS certificate, or the server itself. This guide helps you find the real cause with simple tests.

What This Error Means

The "internal error has occurred in RDP" shows in Remote Desktop Connection, either before or after you type your password. It usually comes from a failed security setup between the two machines, or from a broken self-signed RDP certificate. 

Step 1: Check Where the Error Comes From

First, you must connect using the same steps that fail. Press Win + R, type mstsc, and enter the server IP. Note whether the error comes before or after the login box.

Then, check that the RDP port is open from your PC. Run the command below in PowerShell:

Bash
Test-NetConnection -ComputerName SERVER_IP -Port 3389

If TcpTestSucceeded is True, the port is open, and the problem is not a closed port. You can try a second PC or network. If the second PC works, the problem is on your client. If an internal error has occurred in RDP on every device, the problem is on the server or the path to it.

Next, open your provider's web console, log in to the server, run mstsc, and connect to localhost. If the error is gone, the network is the cause. If it stays, the server is the cause.

Step 2: Fix Client Credentials and Cache

Old saved logins and cache files on your PC can break the RDP connection. This is a common cause when the error shows on one device but not on others. These fixes are quick, safe, and easy to undo:

  1. Remove the saved login. Run cmdkey /list, find the entry like TERMSRV/SERVER_IP, then run cmdkey /delete:TERMSRV/SERVER_IP.
  2. Clear the RDP cache. Close mstsc, open %localappdata%\Microsoft\Terminal Server Client\Cache, and delete the files inside.
  3. Use a fresh connection. Open mstsc, click Show Options, and choose Save As to make a new .rdp file. Do not reuse an old file.
  4. Try the IP address instead of the hostname. This helps you check if DNS is the problem.

If it works now, an internal error has occurred in RDP because of your client. You can stop here.

Step 3: Test VPN and Network Transport

A VPN or a firewall can block or slow the path between your PC and the server. RDP can use both TCP and UDP, and a problem with either one can break the connection. These tests show if the network is the cause, and you can undo each one.

1) Disconnect the VPN and connect again. Then, try with the VPN on. If only one way works, the VPN is the cause.

2) Force TCP only on the client. Run this in an admin Command Prompt, then restart mstsc:

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

3) You can undo it later with the command below:

Bash
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client" /v fClientDisableUDP /f

4) Check for packet size problems on a VPN. Run ping SERVER_IP -f -l 1400. If it says the packet needs to be fragmented, lower the VPN MTU.

Step 4: Read the Event Viewer Logs

The Event Viewer logs on the server usually show the real cause of the error. You must open them right after a failed try, so the new events are easy to find.

These paths show if the problem comes from a certificate, the security setup, or the RDP service:

  • Windows Logs > System: Look for Schannel errors and for Event ID 1057 or 1058 from TerminalServices-RemoteConnectionManager. These point to a certificate problem.
  • Applications and Services Logs > Microsoft > Windows > TerminalServices-RemoteConnectionManager > Operational
  • Applications and Services Logs > Microsoft > Windows > TerminalServices-LocalSessionManager > Operational
  • Applications and Services Logs > Microsoft > Windows > RemoteDesktopServices-RdpCoreTS > Operational

Find the events with the same time as your failed try. They show why an internal error has occurred in RDP. If you see a Schannel or certificate event, go to Step 5. If you see no events, the server may be busy, so go to Step 6.

Step 5: Test TLS and the RDP Certificate

RDP uses TLS and a certificate to make the connection safe. If the certificate is broken or the security setup fails, the connection can stop with this error. These tests check both, and you can undo each change. Do them on the server through your provider console, and back up the registry first.

First, test the security setup. This turns off TLS and NLA for a short test. Run in an admin Command Prompt:

Bash
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v SecurityLayer /t REG_DWORD /d 0 /freg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v UserAuthentication /t REG_DWORD /d 0 /f

If you can connect now, the cause is the certificate or the security setup. Put the safe values back right away:

Bash
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v SecurityLayer /t REG_DWORD /d 2 /freg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v UserAuthentication /t REG_DWORD /d 1 /f

Then, rebuild the RDP certificate by following these steps:

  1. Press Win + R, type certlm.msc, and open Remote Desktop > Certificates.
  2. Delete the RDP self-signed certificate.
  3. Run Restart-Service TermService -Force in PowerShell. This ends active sessions.
  4. Refresh certlm.msc. A new certificate should appear.

If Windows does not make a new certificate, check these items:

  • Make sure these services are running: CertPropSvc, KeyIso, CryptSvc, and SessionEnv.
  • Check the folder C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys. Administrators need Full control. Everyone needs Read and Write.
  • Open HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp. Compare SSLCertificateSHA1HashValue with the certificate thumbprint. If they don't match, delete the value and restart the server. Skip this step if the server has the Remote Desktop Connection Broker role.
  • In the same key, set fAllowSecProtocolNegotiation to 1 and MinEncryptionLevel to 3.
  • If a policy sets SSL Cipher Suite Order, set it to Not configured. Find it at Computer Configuration > Administrative Templates > Network > SSL Configuration Settings.

Step 6: Check Server Resources

A server with full CPU, RAM, or disk can fail to finish the RDP setup, so an internal error has occurred in RDP. Open Task Manager from the console and check CPU, Memory, and Disk. Keep a few GB free on the C: drive.

Sometimes the connection hangs for up to a minute, shows the error, and works on the second try. The Windows Audio service can cause this. Stop and disable it on the server, then test again.

If your server runs out of resources, you can upgrade your plan. For heavy workloads, a dedicated server hosting plan gives you all the CPU and RAM for yourself.

Use the Server Console to Repair Remote Desktop

If an internal error has occurred in RDP and you cannot log in, do not wait. Open the web console (VNC or KVM) from your hosting panel. It works even when RDP and the network fail. Log in, run the steps above, and reboot the server if needed.

If a repair makes things worse, restore your registry backup or use a snapshot or backup from your provider. A good Windows VPS plan includes console access and snapshots, so you can always get back in.

Conclusion

This error looks scary, but you can fix it step by step. First, find the source, including your PC, the network, the certificate, or the server load. Test each fix on its own, and undo it when you finish. In most cases, a clean saved login, a TCP-only test, or a new RDP certificate fixes it. If nothing works, use your provider's console to get back into the server.

We hope you enjoy this troubleshooting guide on fixing “An Internal Error Has Occurred” in Windows Remote Desktop.