| Previous | Next |
| ERROR_CANNOT_IMPERSONATE | ERROR_RXACT_COMMIT_FAILURE |
ERROR_RXACT_INVALID_STATE
The registry transaction state does not permit this operation.
ERROR_RXACT_INVALID_STATE is Win32 error 1369 (0x559). It reports that the transaction state of a registry subtree is incompatible with the requested operation. The value is low-level and context-sensitive, so diagnostics must identify the registry API or component that surfaced it.
State problems that can lead here
- work is attempted before a registry transaction is initialized
- the transaction has already been committed, aborted, or closed
- nested update logic mixes transactional and nontransactional handles
- recovery code reuses a subtree context from an earlier generation
- cleanup races with a worker that still holds a transactional registry reference
Evidence to preserve
Record the registry path, operation, handle origin, transaction identifier when exposed, initialization and completion sequence, process and thread IDs, and every preceding registry status. Include whether the handle came from a transacted or ordinary open call. Avoid exporting unrelated registry data that may contain secrets.
Diagnostic sequence
Trace the transaction lifecycle and mark the exact point where the subtree becomes active, committed, rolled back, or invalid. Ensure that all child operations use handles created under the same intended context. Check exception and cancellation paths for duplicate completion and for work queued after finalization.
When the error appears during migration, setup, or policy processing, compare the failing registry subtree with a clean machine and inspect the product’s journal or rollback metadata. Do not delete an internal transaction marker without vendor guidance; the marker may be the only indication that a previous update is incomplete.
Recovery
Finish or roll back the existing transaction through the supported component, close stale handles, and begin a new transaction generation if the operation is retryable. If a crash left persistent registry state inconsistent, use the product’s repair procedure or restore the relevant hive and application data from a consistent backup.
Difference from access and handle errors
ERROR_ACCESS_DENIED concerns authorization, while ERROR_INVALID_HANDLE says a handle is unusable. Error 1369 indicates that the registry transaction context exists or is recognized but its current phase cannot accept the requested action.
Example
An installer starts a registry update, commits it, and then a delayed callback tries to add another value using a retained subtree context. The callback receives 1369. Moving all writes before commit and canceling delayed work during finalization restores a valid lifecycle.
References
- Microsoft: System Error Codes (1300–1699)
- Microsoft: Registry functions
- Microsoft: Registry overview
Looking for a different code? Search another status or error code.