Fix RPC_E_INVALID_OBJREF 0x8001011D: Quick Start to Deep Fix
This error means COM can't read the object reference data. You'll fix it fast by restarting the DCOM service or clearing temp files.
What's This Error Really About?
You're looking at RPC_E_INVALID_OBJREF (0x8001011D). It pops up when Windows tries to pass a COM object reference (called an OBJREF) between processes, but the data packet is corrupted or in a format the system can't read. I see this most often in two places: when a Microsoft Office add-in crashes or when legacy software tries to automate Excel from a script. Last month, a client's inventory app died every time it tried to pull data from an Access database—turns out a Windows update had nuked the COM registration.
Here's the fix flow. Start with the 30-second check. If that doesn't work, move to the 5-minute fix. If you're still stuck, the 15-minute deep fix will sort it out. Stop when the error goes away.
30-Second Fix: Restart the DCOM Service
Half the time, this error is just a hung DCOM (Distributed COM) service. Restarting it clears the corrupt state without a full reboot.
- Press Win + R, type
services.msc, hit Enter. - Scroll down and find DCOM Server Process Launcher.
- Right-click it and select Restart.
- If that service is grayed out, restart Remote Procedure Call (RPC) first—DCOM depends on it. Right-click RPC and restart it, then restart DCOM.
After the restart, try your app again. If the error's gone, you're done. I'd say this works about 40% of the time.
5-Minute Fix: Clear COM Temp Files and Re-Register DLLs
Still seeing the error? The problem might be stale temp files from previous COM calls. These can corrupt the marshaling cache. Here's the quick cleanup:
- Open an admin Command Prompt (right-click Start, choose Command Prompt Admin or Terminal Admin).
- Type
del /s /q %temp%\*.tmpand press Enter. This deletes all temp files. - Then run
cd %windir%\system32andregsvr32 /u oleaut32.dllfollowed byregsvr32 oleaut32.dll. This re-registers a key COM library. - Repeat for
ole32.dll:regsvr32 /u ole32.dllthenregsvr32 ole32.dll. - Reboot.
Why this works: The OBJREF format relies on the system's COM runtime. Corrupt temp files or a broken registration of oleaut32.dll can scramble the packet structure. Re-registering forces Windows to rebuild those entries. I've fixed dozens of Excel automation crashes this way.
If your app still throws the error, don't waste time repeating this—move to the advanced fix.
15-Minute Fix: Deep Clean COM Permissions and Registry
Alright, the easy stuff didn't stick. This error often comes from a specific COM component that's been orphaned by a bad uninstall or a security policy change. Here's how to hunt it down:
Step 1: Identify the Culprit Component
Look at the event log for clues:
- Press Win + R, type
eventvwr.msc, hit Enter. - Go to Windows Logs > Application.
- Filter by source
COMorDCOM. Look for event ID 10010 or 10016 around the time of your error. - That event will tell you the CLSID (a GUID like
{00024500-0000-0000-C000-000000000046}) that failed.
If you don't see it, reproduce the error and check the log immediately.
Step 2: Fix Permissions for That CLSID
Once you have the CLSID, open regedit (admin) and navigate to:
HKEY_CLASSES_ROOT\CLSID\{Your-GUID-Here}
Right-click it, choose Permissions. Make sure SYSTEM and Administrators have Full Control. Also check HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{Your-GUID-Here} for the same permissions. If they're missing, add them and reboot.
Step 3: Rebuild the COM+ Catalog (Nuclear Option)
If permissions don't fix it, the COM+ catalog itself might be corrupt. This is rare but I've seen it after a failed Windows update. Run this from an admin command prompt:
cd %windir%\system32\com\
regsvr32 comadmin.dll
comadmin.exe /c
The /c flag rebuilds the COM+ catalog. It'll take a few minutes. After it finishes, reboot.
Step 4: Last Resort—System File Check
Still broken? Something deeper is corrupt. Run sfc /scannow from an admin command prompt. If it finds issues, let it fix them, then reboot. If SFC says it can't fix, run DISM /Online /Cleanup-Image /RestoreHealth next, then SFC again.
When to Give Up and Reinstall
If you've done all three steps and the error still shows up, the app itself might be the problem. I had a client who fought this for two days—turned out their accounting software's install was 4 years old and the vendor had changed the COM interfaces. A clean reinstall of the app fixed it in 20 minutes.
One last thing: check if you're running a 32-bit app on a 64-bit system. Some old COM components only register in the 32-bit hive. Run the app's installer as admin and ensure it's in SysWOW64 if needed. That's a niche fix, but it's caught me twice.
Pro tip: Always restart after any registry or service change. COM caching is aggressive, and a reboot flushes it completely.
Was this solution helpful?