| Previous | Next |
| OLEOBJ_E_INVALIDVERB | INPLACE_E_NOTOOLSPACE |
INPLACE_E_NOTUNDOABLE
Undo is not available
INPLACE_E_NOTUNDOABLE is the failure HRESULT 2147746208 (0x800401A0, signed -2147221088) from winerror.h. The documented description is “Undo is not available”. In practical terms, the requested in-place operation cannot participate in the expected undo transaction. Interpret it in the context of coordinating in-place object editing with container undo support.
Relevant contract
In-place activation is a negotiation between the object, client site, frame, and document window. Undo capability and border space are independent resources and need distinct recovery paths.
- Associate this result with one exact operation in IOleInPlaceObject, IOleInPlaceSite, active-object negotiation, undo state, border space, and tool-window layout.
- Confirm that this result came from coordinating in-place object editing with container undo support, rather than from cleanup or a wrapper that ran afterward.
Likely cause branches
- It can result when the object has already committed a change that cannot be reversed.
- It can result when the container requests undo after deactivation or transaction disposal.
- It can result when the server never offered an undoable unit for this operation.
Evidence to preserve
A useful incident records the in-place activation phase, active object, container and object rectangles, border widths, frame and document windows, undo transaction state, and UI deactivation sequence.
- Record the edit transaction ID and object activation lifecycle.
- Capture when the container enabled its Undo command and which interface promised it.
- distinguish inability to undo from failure performing a supported undo.
Diagnostic sequence
- Identify the exact object, method, and lifecycle phase involved in coordinating in-place object editing with container undo support.
Recovery and retry
Correction. disable the undo command for that operation, preserve document dirty state, and offer a higher-level reload or revert only when safe. Retry condition. Retrying the same undo is inappropriate unless the object returns to a prior transaction state. Before repeating the operation, deactivate any partially active object, restore frame and document-window border space, and close or commit the current undo unit consistently.
Practical scenario
An embedded chart applies an external data refresh that cannot be reversed; the host marks the document modified and disables only that undo entry.
Difference from related HRESULTs
OLE_E_PROMPTSAVECANCELLED concerns a save decision; it specifically says the active edit lacks a reversible unit.
Developer and administrator guidance
Model activation, UI activation, border negotiation, and undo as separate states, and balance every site or frame callback even when a later phase fails. Regression coverage should include objects without undo, zero and insufficient border space, tool-window changes, nested activation, frame destruction, and failure during UI deactivation.
Compare the object server in a known compatible container; layout or undo contract failures should not be treated as generic COM-registration damage.
References
Looking for a different code? Search another status or error code.