What 0xC0190004 actually means
You're staring at a blue screen or an application crash with STATUS_TM_INITIALIZATION_FAILED and the hex code 0xC0190004. What's actually happening is that the Kernel Transaction Manager (KTM) — the component that coordinates atomic operations across files, registry keys, and databases — can't bring itself online. Windows relies on KTM for things like transactional NTFS (TxF) and the Distributed Transaction Coordinator (DTC). When it can't initialize, anything that depends on transactions fails hard.
The error often shows up right after a Windows Update, a bad shutdown, or when you try to restore a system image. I've seen it on Windows 10 21H2 and Windows 11 22H2 machines where the transaction log directory got corrupted by a power loss during a write.
Cause 1: Corrupted transaction log files (most common)
The KTM keeps its logs in C:\Windows\System32\config\TxR. If those files get truncated or corrupted — say, from a sudden power off while a transaction was in flight — the manager can't replay them and bails out with 0xC0190004. This is the number one reason I see in the field.
You can't just delete the folder while Windows is running. You need to boot into Windows Recovery Environment (WinRE).
- Hold Shift while clicking Restart, or boot from your Windows install USB and choose Repair your computer.
- Go to Troubleshoot > Advanced options > Command Prompt.
- Run these commands to back up and then clean the log directory:
ren C:\Windows\System32\config\TxR TxR.old
mkdir C:\Windows\System32\config\TxR
What this does: Windows rebuilds the TxR folder on next boot. Any pending transactions are lost, but that's usually fine — they were broken anyway. The reason step 3 works is that KTM treats an empty folder as a clean slate rather than trying to parse garbage.
If that doesn't fix it, check the DTC log too. Run msdtc -resetlog from an elevated command prompt, then reboot.
Cause 2: The Distributed Transaction Coordinator service is disabled or broken
KTM and DTC are separate but tightly coupled. If the DTC service (MSDTC) is stopped or set to Disabled, KTM initialization often fails with 0xC0190004 as a side effect. This happens a lot on machines where someone ran a "gaming optimizer" script that killed background services.
Check the service status:
sc query msdtc
If it's stopped, start it and set it to Automatic:
sc config msdtc start= auto
net start msdtc
If the service won't start, the DTC log might be corrupt. Reset it with:
msdtc -resetlog
msdtc -uninstall
msdtc -install
net start msdtc
The uninstall/install cycle re-registers the service and recreates its log files. Do this from an elevated prompt. I've fixed dozens of 0xC0190004 cases this way, especially after a failed in-place upgrade from Windows 10 to 11.
Cause 3: Registry corruption in the KTM hive
Sometimes the problem isn't the logs — it's the registry keys that tell KTM where its logs live. A bad update or a registry cleaner can mangle the HKLM\SYSTEM\CurrentControlSet\Services\KtmRm key. If that key is missing or has wrong values, KTM can't find its configuration and returns 0xC0190004.
Boot into WinRE, open Command Prompt, and load the SYSTEM hive:
reg load HKLM\TempSystem C:\Windows\System32\config\SYSTEM
Now check the KtmRm service key:
reg query HKLM\TempSystem\ControlSet001\Services\KtmRm
If it's missing, you'll need to restore from a backup or manually recreate it. The default values are:
| Value name | Type | Data |
|---|---|---|
| Start | REG_DWORD | 2 (Automatic) |
| Type | REG_DWORD | 1 (Kernel driver) |
| ImagePath | REG_EXPAND_SZ | system32\drivers\KtmRm.sys |
After fixing, unload the hive:
reg unload HKLM\TempSystem
Reboot. This is fiddly but it's the only fix when the registry is the culprit. A system restore from before the corruption is faster if you have a restore point.
Quick reference: which fix to try first
| Symptom | Most likely cause | First fix |
|---|---|---|
| Error appears after power loss or bad shutdown | Corrupted TxR logs | Rename TxR folder in WinRE |
| DTC service won't start, error 1067 or 1068 | DTC service misconfigured or log corrupt | msdtc -resetlog then reinstall DTC |
| Error after Windows Update or in-place upgrade | Registry key for KTM damaged | Restore SYSTEM hive or repair KtmRm key |
| Error only in a specific app (e.g., SQL Server) | App-specific transaction log corruption | Reset the app's transaction log (e.g., SQL Server's DBCC) |
Don't waste time with SFC or DISM first — they rarely fix 0xC0190004 because the problem is transactional state, not system file integrity. Start with the TxR logs. That's where the real fix lives 80% of the time.