Skip to content

Est. 2011ยทMicrosoft Partner 7033487ยทDelivery under 3 minยทSupport 7 days a week

Your vault is empty.

Free Fix 0x000006BA

Error 0x000006BA: the RPC server is unavailable when adding a printer

10 min read Updated October 4, 2026 Networking, Sharing & Printing

Fix it now

0x000006BA is Windows error 1722, RPC_S_SERVER_UNAVAILABLE: the RPC server is unavailable. Adding a shared printer is a remote procedure call to a spooler, and this is that call getting no answer. Either the Print Spooler is stopped or crashing at one end, or the RPC path between the two machines is blocked.

Run these on the client first, then the first three again on the print server

net stop spooler
net start spooler
Get-Service Spooler | Select-Object Status,StartType
Test-NetConnection printsrv -Port 135
Test-NetConnection printsrv -Port 445
  1. If either port test returns False, the fault is the path rather than the spooler. On the server, enable the inbound rules in the File and Printer Sharing group in Windows Defender Firewall with Advanced Security.
  2. Check which profile the server’s adapter is on with Get-NetConnectionProfile. A rule enabled for Domain does nothing if the adapter has been classified as Public, and a server landing on Public after a reboot produces this error on its own.
  3. If the spooler will not stay running, clear the queue folder with the service stopped, then start it and watch for a few seconds.
  4. Retry the connection using the server’s fully qualified name: rundll32 printui.dll,PrintUIEntry /in /n "\\printsrv.example.local\queuename".

A disabled spooler on the client blocks the install too, and it is easy to miss while you are concentrating on the server. Check both.

If the queue adds and prints, you are done. If it does not, the next section covers what the wizard is actually doing and where the call is being lost.

Why it happens

Adding a shared printer is not a file copy. The client calls into the remote spooler to enumerate queues, read driver information and open a printer handle, and those calls travel as remote procedure calls. The client first contacts the endpoint mapper on TCP 135 to ask which port the spooler interface is listening on, then connects to the port it is given. Depending on configuration the same traffic can instead run over an SMB named pipe on TCP 445.

That gives the failure three distinct places to happen: the local spooler, the remote spooler, and the network path carrying the call. The Print Spooler service depends on the RPC subsystem, so if RPC is unhealthy on either machine the spooler will not start at all, and every printing operation fails at once rather than degrading gradually.

The companion codes each name a stage. 0x000006D9 is EPT_S_NOT_REGISTERED, published as there being no more endpoints available from the endpoint mapper – in practice, you asked for an interface and the mapper had nothing to hand out, which is what a stopped spooler on the target looks like from the client. 0x800706B9 carries Win32 1721, RPC_S_OUT_OF_RESOURCES, not enough resources available to complete the operation. 0x00000BBA is ERROR_SPOOL_FILE_NOT_FOUND, the spool file was not found, which turns up when the spooler restarts underneath a job that is already in flight.

The Print Spooler is stopped or in a crash loop

You have this one if The service shows as stopped, or starts and stops again within seconds, and local printing fails too.

  1. Start it and watch: Start-Service Spooler, then Get-Service Spooler a few seconds later.
  2. If it stops again, clear the spool folder. Stop the service, delete everything inside C:\Windows\System32\spool\PRINTERS, then start it.
  3. If it still stops, a driver is taking it down. Check the PrintService Admin log for the last driver named before the crash and remove it.
  4. Set the service recovery options so a crash does not leave printing dead: Services console, Print Spooler, Recovery tab, restart on first and second failure.

The firewall is blocking the RPC path

You have this one if Both spoolers are healthy and running, and the port tests from the client fail.

  1. On the server, enable the inbound rules in the File and Printer Sharing group in Windows Defender Firewall with Advanced Security.
  2. Confirm the profile with Get-NetConnectionProfile and enable the rules for the profile the adapter is actually on.
  3. Ask the network team whether TCP 135, TCP 445 and the dynamic RPC range are permitted between the client subnet and the print server.
  4. Retest with Test-NetConnection printsrv -Port 135.

The spooler has been disabled deliberately

You have this one if The start type is Disabled and nobody on the server team is surprised.

  1. Check the start type with Get-Service Spooler | Select-Object StartType and look for a policy under Computer Configuration, Administrative Templates, Printers that disables it.
  2. On domain controllers and member servers that host no queues, leaving it disabled is correct. Point clients at the machine that really is the print server.
  3. If this machine is meant to host queues, exclude it from the hardening policy rather than changing the service by hand, so the next refresh does not undo you.

The two ends are using different RPC transports

You have this one if Some clients connect and others do not, with no pattern in the network path, and the working clients are at a different patch level.

  1. Compare the printing policy settings on a working client and a failing one, including the setting that selects which transport RPC uses for printing.
  2. Set both ends the same rather than leaving one on named pipes and the other on TCP.
  3. Apply with gpupdate /force on both, restart the spooler on each, and retest.

The server has run out of RPC resources

You have this one if 0x800706B9 rather than the plain 1722, on a busy print server that has been up a long time.

  1. Check the spooler process handle and memory use in Task Manager, Details tab, for spoolsv.exe.
  2. Restart the spooler in a quiet period to release the leaked handles.
  3. Move badly behaved drivers into isolation, so a leak in one does not exhaust the whole service: Print Management, the queue’s properties, Advanced.
  4. Plan a reboot if it returns quickly, and record which driver was in use when it did.

Full reference

Reading the four codes as published

Code Published meaning
0x000006BA RPC_S_SERVER_UNAVAILABLE: the RPC server is unavailable
0x000006D9 EPT_S_NOT_REGISTERED: there are no more endpoints available from the endpoint mapper
0x800706B9 Win32 1721, RPC_S_OUT_OF_RESOURCES, carried as an HRESULT: not enough resources are available to complete this operation
0x00000BBA ERROR_SPOOL_FILE_NOT_FOUND: the spool file was not found

0x000006D9 is worth reading carefully, because its published wording is about the mapper rather than about the spooler. It tells you the endpoint mapper answered and had nothing for the interface you asked about. A stopped spooler on the target is the common reason, but so is a spooler that is running and has not registered, which is why the next step after seeing it is to check the service on the far machine rather than to reach for the firewall.

Commands worth knowing

Command What it does
Get-Service Spooler Shows whether the spooler is running and how it is set to start
Restart-Service Spooler -Force Restarts the spooler and anything depending on it
Test-NetConnection printsrv -Port 135 Tests whether the RPC endpoint mapper is reachable
Test-NetConnection printsrv -Port 445 Tests the SMB path the same traffic can take
Get-NetConnectionProfile Shows which firewall profile the adapter is using
Get-Printer -ComputerName printsrv Lists the queues the server publishes, over the same RPC path the wizard needs
rundll32 printui.dll,PrintUIEntry /in /n "\\printsrv\queue" Adds a shared printer connection directly, without the wizard

Get-Printer -ComputerName is the most useful line here, because it exercises the same path the Add Printer wizard uses and gives you a clean error instead of a dialog. If it returns the queue list, the RPC path is fine and your problem is further along. If it fails the same way, you have reproduced the fault in a form you can test repeatedly.

Where the network profile catches people out

Windows applies firewall rules per profile, and a server that comes back from a reboot before its domain controller is reachable can classify its adapter as Public. Every rule you enabled for Domain then does nothing, printing stops for everyone, and nothing in the printing stack looks wrong. Get-NetConnectionProfile answers it in one line, and it is worth checking before any deeper investigation on a server that has recently restarted.

When both spoolers are healthy and the ports are open

  • Try the fully qualified name rather than the short name. A short name that resolves to the wrong machine fails exactly like a blocked port.
  • Check for a second print server answering for the same name, usually a leftover DNS record.
  • Confirm the client is not being served by a stale cached credential for that server, which produces a refusal rather than a timeout.
  • Look at whether an endpoint security product is filtering RPC locally on either machine; its logs will name what it dropped.
  • Test from a machine on the same subnet as the server. A path that works from the server itself tells you nothing about the client’s route.

Every code this article covers

Code What it points at Source
0x000006BA RPC_S_SERVER_UNAVAILABLE: the RPC server is unavailable Microsoft Learn
0x000006D9 EPT_S_NOT_REGISTERED: there are no more endpoints available from the endpoint mapper Microsoft Learn
0x800706B9 Win32 1721, RPC_S_OUT_OF_RESOURCES, carried as an HRESULT: not enough resources are available to complete this operation Microsoft Learn
0x00000BBA ERROR_SPOOL_FILE_NOT_FOUND: the spool file was not found Microsoft Learn

Confirm the fix worked

  1. Run Get-Printer -ComputerName printsrv from the client and confirm the queue list comes back without an error.
  2. Add the printer and print a test page end to end.
  3. Confirm the spooler is still running on both machines several minutes later, not stopped again.
  4. Confirm Get-NetConnectionProfile on the server shows the profile whose firewall rules you enabled.
  5. Reboot the client once and confirm the printer connection returns at logon without being re-added.

Questions people ask about this

Does this cost anything to fix?

No. Every step uses services, firewall rules and policies already present in Windows. There is no licence that makes an RPC call succeed.

Why does the same printer work from another PC?

Because that PC is on a different network path, a different firewall profile, or a different RPC transport. Compare the two clients with Get-NetConnectionProfile and the printing policy settings before looking at the server.

Should I open the whole dynamic RPC port range?

Not blindly. Enabling the File and Printer Sharing rule group on the server covers the normal case. If a hardware firewall sits in between, ask the network team for the printing ports specifically rather than for a broad allow.

Can I add the printer by IP instead and avoid RPC entirely?

Yes. A standard TCP/IP port connects straight to the device and does not involve the print server at all. You lose central driver management and server-side job accounting, so treat it as a workaround for one urgent user rather than as the fix.

The spooler is running on both machines and I still get 1722. What now?

Test the path rather than the service. TCP 135 and TCP 445 from the client, then the network profile on the server, then whether an endpoint product is filtering RPC locally. The code is about the call, not about the printer.

Related error codes

Was this article helpful?

Your feedback helps us improve our documentation.

Related articles

License Error VPN error 809 and 800: IKE traffic blocked before the tunnel can open License Error 0x80070032 and SMB1 shares: why old NAS boxes stop working in Windows Free Fix Error 0x0000007C: printer driver or print processor not supported by Windows Free Fix VPN error 868: the remote access server name could not be resolved
โ† Back to Knowledge Base