0XC0190004

Fix STATUS_TM_INITIALIZATION_FAILED (0xC0190004) on Windows

0xC0190004 means the transaction manager can't start. Usually a corrupted log or disabled service. Here's how to fix it fast.

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).

  1. Hold Shift while clicking Restart, or boot from your Windows install USB and choose Repair your computer.
  2. Go to Troubleshoot > Advanced options > Command Prompt.
  3. 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 nameTypeData
StartREG_DWORD2 (Automatic)
TypeREG_DWORD1 (Kernel driver)
ImagePathREG_EXPAND_SZsystem32\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

SymptomMost likely causeFirst fix
Error appears after power loss or bad shutdownCorrupted TxR logsRename TxR folder in WinRE
DTC service won't start, error 1067 or 1068DTC service misconfigured or log corruptmsdtc -resetlog then reinstall DTC
Error after Windows Update or in-place upgradeRegistry key for KTM damagedRestore SYSTEM hive or repair KtmRm key
Error only in a specific app (e.g., SQL Server)App-specific transaction log corruptionReset 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.

Related Errors in Database Errors
ERROR 1040 (HY000) MySQL ERROR 1040 Too many connections — Fix max_connections now Error: 9002 or 14420 Transaction Log Shipping Fails with Log Sequence Number Gap 0X00000429 Fix ERROR_DATABASE_DOES_NOT_EXIST (0X00000429) Fast phpMyAdmin Export to CSV Missing Rows – Fix It

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.