| Previous | Next |
| RPC_E_REMOTE_DISABLED | RPC_E_NO_CONTEXT |
RPC_E_INVALID_OBJREF
Marshaled COM OBJREF has invalid format
RPC_E_INVALID_OBJREF is HRESULT 2147549469 (0x8001011D) from winerror.h. The documented description is “The marshaled interface data packet (OBJREF) has an invalid or unknown format.” The relevant context is the COM/RPC call control, message filtering, apartment routing, marshaling, security negotiation, or remote object lifetime.
Where it is encountered
- Cross-apartment or cross-process COM method invocation and activation.
- STA message filtering, reentrancy, call cancellation, timeout, or retry handling.
- DCOM security initialization, proxy/stub marshaling, OBJREF processing, and server object lifetime.
The immediate focus is unmarshaling of interface data whose signature, type, extent, identifiers, or custom-marshaler payload is malformed or unsupported.
What to verify
Verify that the marshaled byte stream is captured safely with length and hash, and producer/consumer proxy versions are known. That condition determines whether the same object can continue, a new object is required, or policy must change.
Correct handling and recovery
Reject the data, rebuild it through COM marshaling APIs, and repair custom marshalers or version skew. Never patch unknown OBJREF bytes in place.
Practical scenario
A custom marshaler writes a truncated payload to shared storage. Versioned length validation rejects it and the interface is marshaled again through the fixed component.
Difference from nearby HRESULTs
It faults the marshaled packet; RPC_E_INVALID_IPID can occur after a structurally valid packet refers to a stale endpoint.
Developer and administrator guidance
References
Looking for a different code? Search another status or error code.
