| Previous | Next |
| MK_E_NEEDGENERIC | MK_E_SYNTAX |
MK_E_UNAVAILABLE
Operation unavailable
MK_E_UNAVAILABLE is the failure HRESULT 2147746275 (0x800401E3, signed -2147221021) from winerror.h. The documented description is “Operation unavailable”. In practical terms, the moniker operation is unavailable in the current context or target state. Interpret it in the context of binding, resolving, or accessing a resource represented by a moniker.
Relevant contract
Diagnostic focus: For MK_E_UNAVAILABLE, preserve whether the named object is currently registered or otherwise available to the moniker, especially through the Running Object Table. Record the exact IMoniker method, requested interface, bind options and concrete moniker class from the failing call; those details determine whether retry, a different bind operation, or a different moniker is appropriate.
- Confirm that this result came from binding, resolving, or accessing a resource represented by a moniker, rather than from cleanup or a wrapper that ran afterward.
Likely cause branches
- It can result when the target is offline or not exposed by this moniker implementation.
- It can result when required service, running object, or storage is temporarily unavailable.
- It can result when the requested operation is not supported for this moniker state although the name is syntactically valid.
Evidence to preserve
- Capture the exact IMoniker method and requested IID.
- Check ROT, target service, file, and binding policy independently.
- Preserve underlying IErrorInfo or transport status if available.
Diagnostic sequence
- Identify the exact object, method, and lifecycle phase involved in binding, resolving, or accessing a resource represented by a moniker.
Recovery and retry
Correction. restore the target or choose a supported binding route, then create a fresh bind operation. Retry condition. Bounded retry is appropriate only when evidence identifies transient availability; unsupported operations should fail immediately. Before repeating the operation, release partial monikers and bound interfaces, unregister only owned Running Object Table entries, and abandon a bind context whose deadline or parameters no longer match the retry.
Practical scenario
A moniker names a document that is normally supplied by a local service, but the service is stopped; starting it permits binding without changing the display name.
Difference from related HRESULTs
MK_E_NOOBJECT says no object corresponds to the moniker; it can describe a known target that cannot currently be supplied.
Developer and administrator guidance
References
Looking for a different code? Search another status or error code.
