| Previous | Next |
| RO_E_CLOSED | RO_E_CHANGE_NOTIFICATION_IN_PROGRESS |
RO_E_EXCLUSIVE_WRITE
Concurrent writer violated exclusive-write requirements
RO_E_EXCLUSIVE_WRITE is HRESULT 2147483668 (0x80000014) from winerror.h. The documented description is “Only one thread may access the object during a write operation.” The relevant context is the Windows Runtime metadata, object lifetime, asynchronous operation, activation, and apartment model.
What to verify
Verify that the active writer owner, critical section, transaction, and operation instance are known before another writer is started. That boundary prevents this result from being misclassified as corruption, network failure, or a reason for an unsafe automatic retry.
Where it is encountered
- This result can be returned during C++/WinRT, WRL, .NET projections, or native WinRT ABI calls.
- This result can be returned during runtime-class activation, WinMD reflection, asynchronous objects, observable state, or view lifecycle.
- It can be returned during cross-thread and cross-apartment handoff between UI, ASTA, STA, MTA, broker, and background work.
The immediate focus is a WinRT object or storage surface that permits only one writer during a mutation or transaction.
Correct handling and recovery
Serialize writes, await the existing commit or rollback, and release writer ownership on every exception path. Do not solve the conflict with blind retries.
Difference from nearby HRESULTs
It reports competing write ownership; E_CHANGED_STATE reports a state version invalidated by interleaving work.
Practical scenario
Two autosave tasks write the same runtime buffer. A per-document async mutex ensures the second waits for the first commit and then recalculates its delta.
References
Looking for a different code? Search another status or error code.