What does HRESULT 0x800401A0 (INPLACE_E_NOTUNDOABLE) mean?

 
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

  1. 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.