Site icon EfmSoft

What does HRESULT 0x8001011D (RPC_E_INVALID_OBJREF) mean?

 
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.

Exit mobile version