| Previous | Next |
| ERROR_TRANSACTION_SUPERIOR_EXISTS | ERROR_TRANSACTION_PROPAGATION_FAILED |
ERROR_CRM_PROTOCOL_ALREADY_EXISTS
The KTM propagation protocol identifier is already registered
ERROR_CRM_PROTOCOL_ALREADY_EXISTS belongs to the Windows Kernel Transaction Manager transaction-processing model. A communication resource manager bridges KTM transactions to another transaction manager or propagation mechanism. The CRM protocol registration identifies how a transaction is propagated across that boundary. Registering the same protocol again is not equivalent to enlisting another ordinary resource manager; the protocol identifier already names an existing propagation implementation.
Inspect CRM initialization and service lifetime. Duplicate registration is often evidence that startup ran twice, an old CRM instance did not release its registration before replacement, or two modules use the same protocol identifier. Record the protocol identifier and owning process before changing retry logic. A random new identifier may suppress the error but creates two protocol identities and can break recovery or interoperability. The durable fix is to make protocol ownership singular and initialization idempotent.
What to inspect
- Capture the propagation protocol identifier and the component registering it.
- Check duplicate service initialization, reload, and crash-restart paths.
- Do not invent a new protocol identifier merely to bypass the duplicate-registration check.
References
- Microsoft: Kernel Transaction Manager overview
- Microsoft: KTM transaction, TM, RM, and enlistment functions
- Microsoft: superior transaction managers and superior enlistments
- MS-DTCO: superior and subordinate transaction-manager roles
Looking for a different code? Search another status or error code.