You hit this error and you're probably staring at a service that won't start or an app that crashes on launch. I've seen this more times than I can count, and the fix is usually simpler than you'd think.
The Fix: Restart the RPC Service First
- Open Command Prompt as Administrator. Press Win, type
cmd, right-click and choose Run as administrator. - Restart the RPC service (it's called Remote Procedure Call, service name
RpcSs). Run:
Wait a couple of seconds. You should see two messages: "The Remote Procedure Call (RPC) service is stopping" and then "The Remote Procedure Call (RPC) service was started successfully."net stop RpcSs && net start RpcSs - Now restart your application or service that triggered the error. For a Windows service, run
net start YourServiceName. If it's an app, just launch it again.
If the error goes away, you're done. But if it comes right back, the problem is in your code or a specific service that registers the same UUID twice.
Why Restarting the RPC Service Works
RPC (Remote Procedure Call) uses something called the endpoint mapper to keep track of which UUIDs are registered. When a process registers a UUID, it stays in the RPC service's memory until that process exits or the RPC service restarts. If a service crashes without unregistering, or if something else registers the same UUID, you get 0X000006B0 — the type is already registered.
Restarting RpcSs clears all those stale entries. It's like rebooting the phone book so old listings don't conflict with new ones.
Less Common Variations
1. Your Own Code Registers Twice
If you're a developer and the error happens right when you start your app, look at your init code. A common mistake is calling RpcServerRegisterIf (or RpcServerRegisterIf2) more than once for the same interface handle. Fix: add a flag to guard against double registration.
if (!g_registered) {
RpcServerRegisterIf(MyInterface_v1_0_s_ifspec, NULL, NULL);
g_registered = TRUE;
}
2. Multiple Instances of the Same App
If you're running two copies of a service that registers the same UUID, the second one will fail with this error. Check your process list for duplicates. The fix is to either allow only one instance or use a different UUID for each instance.
3. Malware or Security Software Interference
I once saw this error caused by a third-party security tool that was injecting hooks into the RPC layer. If restarting the RPC service doesn't help, temporarily disable any non-Microsoft firewall or security suite and try again. If it works, update or replace that tool.
4. Corrupted RPC Registry Keys
Rare, but possible. If you're on Windows 10 or 11, open regedit and go to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\Security
Export that key as a backup, then delete it and reboot. Windows will recreate it with defaults. This is a last resort — only do it if nothing else worked.
Prevention
- Always unregister your UUIDs when your process exits. In C/C++, call
RpcServerUnregisterIfbefore shutdown. - If you're using a third-party service that throws this error, check the vendor's docs for a supported way to stop and restart it cleanly.
- Don't leave services running longer than necessary. If you're testing, stop the service before rebuilding.
- Schedule a monthly reboot of servers that run RPC-heavy applications. It clears hidden state.
The real fix for most people is restarting the RPC service. It takes ten seconds and clears the whole slate. If that doesn't do it, dig into your code or check for duplicate instances. You'll get it sorted.