Quick answer for the impatient
Restart the Print Spooler service, then reboot the box. If that doesn't kill it, open Component Services and grant the Everyone group Local Launch and Local Activation permissions on the Distributed Transaction Coordinator (DTC) component.
I've seen this error pop up on Windows Server 2016 and 2019 boxes more times than I can count, usually right after a Windows Update or a botched printer driver install. The error text says the RPC stub can't get a call handle, which basically means the client can't talk to the server-side RPC endpoint. Most of the time, that endpoint is the Print Spooler or the Distributed Transaction Coordinator. Let me walk you through the actual fix steps I use when I'm sitting at a client's server console at 2 AM.
- Restart the Print Spooler and RPC services. Open an elevated PowerShell or Command Prompt and run:
Sometimes the spooler is hung because a driver is stuck in a loop. Restarting clears it. If the error persists, move on.net stop spooler & net start spooler
net stop rpcss & net start rpcss - Check the Distributed Transaction Coordinator service. Press
Win+R, typedcomcnfg, hit Enter. Expand Component Services > Computers > My Computer > Distributed Transaction Coordinator. If you see a red arrow on Local DTC, right-click it and select Start. - Fix DCOM permissions for DTC. Still in dcomcnfg, right-click My Computer and choose Properties. Go to the Default Properties tab and make sure Enable Distributed COM on this computer is checked. Then switch to the COM Security tab, click Edit Default under Launch and Activation Permissions, and add the Everyone group with Local Launch and Local Activation allowed. Apply and reboot. This sounds broad, but it's exactly what Microsoft does in their own fix-it scripts for this error. I had a client whose entire HR app crashed with this code because some admin had tightened DCOM default permissions to “Anonymous” only.
- If the error appears when printing from a specific app (like a legacy accounting package), check the registry. Navigate to:
Look for any key that points to a third-party printer driver (e.g., HP LaserJet) and delete it if you're not using that driver. That key can corrupt the spooler's RPC registration. I've seen a rogue Ricoh driver cause this exact error on a file server.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers - Re-register the RPC dynamic endpoint mapper. Run as admin:
Then restart the RPC service. A corrupt registration can block call handle acquisition.regsvr32 rpcrt4.dll
regsvr32 rpcss.dll
When the main fix fails: the Group Policy angle
If you're still staring at the error, look at the server's local security policy. Run secpol.msc and go to Security Settings > Local Policies > User Rights Assignment. Find Impersonate a client after authentication. Make sure NETWORK SERVICE and SERVICE are in the list. If they're missing, add them and reboot. I once spent a whole afternoon chasing this error on a 2012 R2 box, turned out a quick security hardening script had stripped those rights.
Another sneaky cause: IPv6 broken on the network adapter. Disable IPv6 temporarily on the server's NIC and see if the error goes away. Some RPC calls prefer IPv6, and if the stack is misconfigured, the call handle never comes back.
Prevention tip
Stop letting everyone install printer drivers on the server. I know, easier said than done. But every time this error hits, it's because a driver is doing something weird with RPC marshaling. Create a group policy that restricts driver installation to admins only. Also, keep an eye on the event log for Event ID 7031 – that's the Print Spooler service crashing. When you see that, don't just restart it, investigate which driver is the culprit and update it or bin it.
One last piece of advice: if the server is running any backup software that uses VSS, check that the Volume Shadow Copy service is set to Automatic and running. A broken VSS can take down the DTC and give you the same error. Had a client whose backup agent was killing DTC every night at 2 AM, and the morning shift thought the ERP was broken. Turned out to be a VSS provider conflict.
That's the full tour. Try the restart first, then DCOM permissions, then the registry. Nine times out of ten, it's one of those.