Sometimes, Windows users get an error message "The RPC server is unavailable" in the process of installing some hardware.
Basically, this error appears on Windows when a communication error occurs between two computers in a network.
The computer (an RPC client) cannot connect to a remote computer (an RPC server). So, the program we are running does not work and returns an RPC error because it cannot access data on the remote host.
RPC stands for is Remote Procedure Call, which is a method that some applications will use to communicate with other applications that are running on the same computer.
What this means is that RPC allows different processes to communicate with one another in order to perform a task.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related Windows queries.
In this context, we shall look into methods to resolve this RPC server error which is also known by its error code: 0x800706BA.
Causes for 'The RPC server is unavailable' error
Generally, If an RPC client was unable to connect to an RPC server, the following error appears in the app:
The RPC server is unavailable
Modern Windows versions use the Dynamic RPC Port range from 49152 to 65535. Windows Servers used a different RPC port range from 1024 to 65535.
Below, you will see some of the causes for the error:
- Firstly, a remote computer is turned off.
- Secondly, RPC services are not running on the remote host.
- Next, We are trying to connect to an RPC server using the wrong hostname (or a wrong IP address matches the server DNS name).
- Next, Incorrect network connection settings are used on the server or client.
- Finally, RPC traffic between client and server is blocked by the firewall.
How to fix 'The RPC server is unavailable' error ?
1. Checking Remote Computer Availability
Firstly, make sure that the remote computer is turned on. We can use ping command. We should try ping command by its name and IP address.
If the RPC server is not available by the hostname, check if DNS records are correct and try to flush the DNS cache on the client:
If the name of the computer our RPC server is running on has been changed recently, try to re-register it in Active Directory DNS:
2. Check the Status of DCE/RPC Services
Next, make sure that the services processing incoming RPC connections are running on the server:
1. Firstly, open the Service Management console (services.msc).
2. Then, make sure that the following services are running and configured to start automatically:
- Firstly, remote Procedure Call (RPC).
- Secondly, RPC Endpoint Mapper.
- Finally, DCOM Server Process Launcher.
We can check the status of the services via PowerShell:
Get-Service RpcSs,RpcEptMapper,DcomLaunch| Select DisplayName,Status,StartType
If RPC services are stopped and we cannot start them, try to activate them through the registry. Find the registry key of the services and change the value of the Start parameter to 2 (automatic service startup):
- Remote Procedure Call (RPC) — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RpcSs.
- RPC Endpoint Mapper — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RpcEptMapper.
- DCOM Server Process Launcher — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DcomLaunch.
3. Firewall is Blocking RPC Connections
In this case, make sure that the RPC traffic between computers is not blocked by the firewall. If we are using Windows Defender Firewall with Advanced Security, we need to create the rules allowing RPC traffic or make sure that they exist.
Generally, one of the rules is to allow access to the RPC Endpoint Mapper service over port TCP 135. Another one is to allow access to the RPC service we want to use through the RPC Dynamic Ports. Create the rules for all network profiles: Domain, Private and Public.
We can create the rules manually. In an AD domain environment, we can deploy firewall rules using GPO or use PowerShell scripts.
Make sure that port TCP/135 is available on our RPC server from a client (the RPC Endpoint Mapper must listen on it). We can check the port availability via PowerShell:
Test-NetConnection 192.168.1.201 -port 135
If the RPC port is available, we will see the message:
We can get a list of RPC endpoints (services and applications) registered on the remote computer and advertised by the RPC Endpoint Mapper service using the PortQry tool:
portqry -n 192.168.1.201 -p tcp -e 135
In the PortQry output, we can see the number of the port assigned to the RPC service we want to use (is it running) and make sure that the port is not blocked from the client.
Generally, If we are using a third-party firewall/antivirus software, make sure that it does not block RPC traffic and can correctly process the RPC Dynamic Ports traffic.
4. Check Network Protocols & Settings
Then, make sure that the network settings on our computer are correct: the IP address, default gateway, subnet mask, DNS server settings (we can check the network settings from PowerShell).
Also, make sure that Internet Protocol Version 6 (TCP/IPv6) and File and Printer Sharing for Microsoft Networks are enabled in the settings of the network adapter.
Usually, some network apps do not work correctly if the TCP/IPv6 protocol is disabled and return the error: 1722 The RPC server is unavailable. If the RPC error persists after enabling IPv6, try to disable the Teredo protocol through the registry:
Finally, create a DWORD parameter with the name DisabledComponents and value 8 in the reg key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters:
reg add hklm\system\currentcontrolset\services\tcpip6\parameters /v DisabledComponents /t REG_DWORD /d 8