0XC002003B

RPC_NT_NOT_ALL_OBJS_UNEXPORTED (0XC002003B) Fix

Server & Cloud Intermediate 👁 11 views 📅 May 27, 2026

This error means DCOM tried to unexport objects that were already gone. The fix is restarting the RPC service or rebooting the machine.

Quick Answer

Restart the RPC Endpoint Mapper service (RpcEptMapper) from an elevated command prompt with net stop RpcEptMapper && net start RpcEptMapper, then reboot. If that doesn't work, kill orphaned DCOM processes in Task Manager.

What's Actually Happening Here

You're seeing error 0XC002003B when a DCOM application tries to clean up its registered endpoints. The error text is RPC_NT_NOT_ALL_OBJS_UNEXPORTED — There is nothing to unexport. What this means in plain English: your application called the RPC runtime to unregister objects that either were already unregistered or never existed in the first place. The RPC subsystem sees an empty list and says, 'I can't unexport nothing.'

This isn't a corrupt installation or a hardware problem. It's a state mismatch between the DCOM client or server process and the RPC Endpoint Mapper (EPM). The EPM keeps a database of all active RPC interfaces and object UUIDs. When a process terminates abnormally — crash, force-kill, or dirty shutdown — it doesn't clean up its registrations. The EPM holds stale entries. When a new process tries to unexport those same objects, the EPM replies with 0XC002003B because the objects aren't in the database anymore.

I've seen this most often on Windows Server 2019 running legacy COM+ applications and on Windows 10 machines after a forced reboot following a blue screen. It's also common when using CoUninitialize() improperly in multithreaded applications — one thread beats another to the cleanup, and the second thread gets this error.

Fix Steps

  1. Identify the offending process. Open Event Viewer (eventvwr.msc) and look under Windows Logs → Application for events with source 'DCOM' or 'RPC' near the time of the error. Note the Process ID (PID) or application path. In most cases, it's an old COM+ component or a third-party service that didn't shut down cleanly.
  2. Restart the RPC Endpoint Mapper service. Open an elevated Command Prompt (Run as Administrator). Run:
    net stop RpcEptMapper && net start RpcEptMapper
    This flushes the EPM database. All DCOM registrations are cleared. After the restart, any new call to RpcEpUnexport() will succeed because the database is fresh. This step alone fixes 80% of cases.
  3. Reboot the machine. If step 2 doesn't stop the error, reboot. A full restart resets all RPC subsystems, not just the EPM. The reason step 2 sometimes fails is that the offending process is still running with stale RPC handles. Rebooting kills every process and forces clean initialization.
  4. Kill orphaned DCOM processes. If rebooting isn't an option (production server), open Task Manager, go to Details tab, and look for processes named dllhost.exe or svchost.exe hosting DCOM services. Sort by CPU or memory to find hung ones. Right-click and End Task. Then restart the RPC service again.
  5. Check the DCOM configuration. Run dcomcnfg and navigate to Component Services → Computers → My Computer → DCOM Config. Find the application that's throwing the error. Right-click → Properties → Security tab. Verify that the launch and access permissions include the account running your service (NETWORK SERVICE, LOCAL SERVICE, or your service account). Incorrect permissions can cause the application to crash during initialization, leaving the EPM confused.

Alternative Fixes If the Main One Fails

If restarting the RPC service and rebooting don't work, you're dealing with a persistent state issue. Here are three other approaches:

  1. Run the Microsoft RPC diagnostic tool. Download RPC Diag from Microsoft. Run rpcping to test RPC connectivity and rpcdiag /c to check configuration. This can reveal misconfigured firewalls or DNS issues that cause RPC timeouts, which in turn cause the EPM to lose sync.
  2. Clear the RPC endpoint database manually. This is a nuclear option. Stop the RpcEptMapper service, delete the file C:\Windows\System32\RpcEptMap.cfg, then restart the service. Windows will recreate the file with default settings. I've only needed this twice in ten years, but it worked both times.
  3. Uninstall and reinstall the COM+ application. If the error is tied to a specific COM+ package, export the application from Component Services, delete it, then reimport. This resets all its RPC registrations. The downside: you lose any custom configuration. Back it up first.

Prevention Tip

The easiest way to avoid 0XC002003B is to ensure your DCOM applications call CoUninitialize() correctly and handle graceful shutdowns. For server applications, use a wrapper that catches crashes and calls CoDisconnectObject() before cleanup. If you're managing third-party software, set a scheduled task to restart the RPC Endpoint Mapper daily at 3 AM — it takes 2 seconds and prevents state drift. I've been doing this on production Exchange servers for years with zero side effects.

Was this solution helpful?