| Previous | Next |
| RPC_S_INVALID_STRING_BINDING | RPC_S_INVALID_BINDING |
RPC_S_WRONG_KIND_OF_BINDING
Binding handles have different roles
RPC_S_WRONG_KIND_OF_BINDING is more specific than an invalid handle. The RPC runtime recognized the handle, but the operation does not accept that kind of binding. Microsoft RPC distinguishes a server binding used by a client to call a server from the client binding that the runtime passes to a server manager routine to describe the caller.
This matters when code stores every RPC_BINDING_HANDLE in one untyped wrapper. The C type is the same, but the runtime role is not. Functions that modify or inspect a server binding can reject the per-call client binding, and management functions can have their own handle requirements.
What to inspect
- Trace where the handle was obtained: string binding conversion, endpoint resolution, a server manager parameter, or
RpcBindingServerFromClient. - Do not confuse this status with
RPC_S_INVALID_BINDING; recreating a valid handle of the same wrong role will not help. - When handles are shared between threads, serialize operations that reset, free, or change authentication or object UUID state.
A useful diagnostic is to log the API that created the handle and the API that rejected it. The mismatch is usually local lifecycle or ownership logic rather than remote reachability.
References
Looking for a different code? Search another status or error code.