| Previous | Next |
| STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY | STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED |
STATEREPOSITORY_E_TRANSACTION_REQUIRED
STATEREPOSITORY_E_TRANSACTION_REQUIRED belongs to Windows StateRepository. It marks the requested repository operation must execute inside a transaction. The useful starting point is the exact API, object and state transition that returned 0x8067000B, because a shell or application message can hide that boundary.
Where this result is raised
Some state changes span multiple records or invariants and cannot be made atomically without an explicit transaction. Autocommit success on a preliminary statement does not satisfy that contract.
Evidence worth collecting
- Operation requiring atomicity. This pins the event to an object or resource generation within the Windows StateRepository boundary.
- Connection autocommit state. This places the event on the lifecycle or transaction timeline within the Windows StateRepository boundary.
- Transaction begin result. This separates caller input from environment and service state within the Windows StateRepository boundary.
- Commit or rollback path. This creates a stable comparison across retries or another machine within the Windows StateRepository boundary.
A controlled diagnostic sequence
- First: Begin the required transaction before the operation.
- Next: Check begin, commit, and rollback HRESULTs.
- Then: Keep all invariant-related writes on one connection.
- Finally: Add failure injection between writes.
How to interpret comparison tests
| Control | Interpretation | Hold constant |
|---|---|---|
| Same database copy, isolated connections | A change points to connection/statement/transaction ownership rather than stored content. | Use a copy and preserve schema plus repository generation. |
| Same operation, controlled environment | If the result follows one machine, account, volume, network, or device, environment matters. | Keep versions and identity explicit rather than comparing only the final message. |
What this code does not justify
Concurrency and lock errors occur while acquiring resources; TRANSACTION_REQUIRED means the caller omitted the required atomic scope.
Do not emulate a transaction with a sequence of independent writes.
Verification after correction
Treat it as corrected only when failure injection leaves either all intended state or none, and successful execution commits once; retain the original negative case so fallback cannot be mistaken for repair.
Technical references
Looking for a different code? Search another status or error code.
