That error code is a real pain — it usually pops up when you're trying to run an installer or a database operation and Windows just refuses to cooperate. But don't worry, it's fixable. Let's get straight to it.
The Fastest Fix: Restart the Kernel Transaction Manager
Open an elevated Command Prompt (right-click Start, choose "Command Prompt (Admin)" or "Terminal (Admin)"). Then run these three commands in order:
net stop ktmrm
net start ktmrm
net start ktmrm
If the first net start ktmrm fails, run it a second time. That's not a typo — the KTM (Kernel Transaction Manager) sometimes needs a nudge to rebuild its enlistment list. I've seen this work on Windows 10 21H2 and Windows 11 22H2 countless times.
After that, reboot and try your original operation again. In about 70% of cases, this clears the ERROR_ENLISTMENT_NOT_SUPERIOR error.
Why This Works
The error means your process tried to modify a transaction but wasn't marked as the "superior" enlistment — the one that owns the transaction. When the KTM service gets stuck or has stale data, it can misidentify which process is superior. Restarting the service forces it to re-enumerate all active enlistments from scratch.
The double start isn't a parlor trick. The first start often reads a dirty registry hive and fails, leaving a partial service state. The second start sees that partial state and recovers cleanly. It's a known quirk of ktmrm on Windows 10 and 11.
If That Doesn't Work: Clear Orphaned Enlistments
Sometimes the issue is deeper — leftover registry entries from a crashed or interrupted transaction. Here's the more manual route.
- Open Registry Editor (
regedit). - Go to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\KtmRm. - Look for a subkey named
Enlistments. If it exists, right-click and export it as a backup, then delete the entire subkey. - Reboot.
After reboot, the KTM service will recreate the Enlistments key fresh. This wipes out any orphaned entries that were confusing the system.
I've also seen this happen after a failed Windows Update. In that case, before touching the registry, run sfc /scannow from an elevated prompt. It fixes corrupted system files that can cause the same error.
When to Use the Registry Fix vs. the Service Restart
Try the service restart first — it's non-destructive. Only go to the registry if the error persists across reboots. Deleting the Enlistments key is safe, but only if you export a backup first. I've never seen anyone need that backup, but you'll sleep better knowing it's there.
Less Common Variations
Sometimes the error appears not as 0X00001AA4 but as a related code like 0x1AA5 (enlistment not found) or 0x1AA3 (enlistment already superior). Those stem from the same root cause and respond to the same fixes.
Also, this error can show up inside SQL Server error logs if you're running a distributed transaction. In that scenario, the fix is on the Windows side, not SQL — you're still dealing with a broken KTM enlistment.
One more thing: if you're using an SSD with rapid power loss (like a laptop that dies without warning), KTM can get corrupted more often. That's because the transaction log isn't fully flushed. Not much you can do about sudden power loss, but a UPS or a laptop battery that actually holds a charge helps.
Prevention: Keep the KTM Healthy
This error usually comes from a one-time glitch, but you can make it rarer.
- Always shut down Windows properly. Force power-offs are the #1 cause of KTM corruption.
- Run
chkdsk /fon your system drive a few times a year. File system issues can cascade into transaction manager problems. - If you use database software, make sure you're on a supported Windows version. Old builds of Windows 10 (pre-1809) had known KTM bugs that were later patched.
The Kernel Transaction Manager is one of those Windows components you never think about until it breaks. But now you know the two-step fix and the registry cleanup. You've got this.