STATUS_RESOURCEMANAGER_NOT_FOUND (0XC019004F) — KTM fix
This error hits when a program tries to open a Kernel Transaction Manager resource manager that doesn't exist. Usually from a broken or unregistered RM.
When this error shows up
You'll see 0XC019004F when an application (often custom software, a database driver, or a backup tool) calls OpenResourceManager against the Kernel Transaction Manager (KTM) and the named resource manager doesn't exist in the KTM namespace. Common triggers: a service that uses transactional registry keys, a custom PowerShell script using Start-Transaction, or an old MSDTC transaction that left a stale reference. The exact message reads: "The specified resource manager was unable to be opened because it was not found."
What's actually broken
KTM is a Windows kernel feature that coordinates transactions across multiple resource managers (like the registry, NTFS, or MSDTC). Each resource manager must be created and registered with the KTM before any transaction can use it. The culprit here is almost always one of two things:
- The resource manager's registration in the registry (
HKLM\System\CurrentControlSet\Control\KernelTransactionManager) got corrupted or deleted. - The TM (Transaction Manager) itself is in a bad state — think a crash or forced reboot during an active transaction.
Skip the generic "repair Windows" garbage. That won't fix a missing registration.
Fix it in 4 steps
Step 1 — Check if the TM is alive
Open an admin PowerShell and run:
Get-TransactionManager -Name "MyTM" 2>&1 | Format-List *
If it returns null or errors, the TM itself is missing. You'll need to re-create it (see Step 3). If you don't know the TM name, check the app's error logs — it's usually hardcoded.
Step 2 — List existing resource managers
Get-ResourceManager -TransactionManager "MyTM"
If the RM you expect isn't listed, that's your problem. Note: KTM resource managers are stored under HKLM\System\CurrentControlSet\Control\KernelTransactionManager\ResourceManagers. If you see a GUID instead of a friendly name, you can match it from the event log.
Step 3 — Re-create the resource manager
You need the application's identity. Most apps use a GUID as the RM name. If you have it, run:
New-ResourceManager -Name "your-rm-guid" -TransactionManager "MyTM" -Description "Recreated by sysadmin"
If you don't know the GUID, check the app's config file or contact the vendor. Don't guess — using the wrong ID makes it worse.
Step 4 — Restart the dependent service
After creating the RM, restart the service that threw the error. In PowerShell:
Restart-Service -Name "YourService" -Force
Then test the transaction again.
If it still fails
Two things to check:
- MSDTC state — Run
net stop msdtc && net start msdtc. A hung DTC can corrupt the KTM namespace. - Registry permissions — The application's service account needs write access to
HKLM\System\CurrentControlSet\Control\KernelTransactionManager. UseGet-Aclto verify.
If you still get the error, the application is likely calling the wrong RM name. Enable KTM logging via wevtutil.exe for the Microsoft-Windows-Kernel-Transactional provider and look for the actual RM GUID it's requesting.
Don't bother with SFC or DISM — this isn't a system file issue. It's a registration problem, not a corruption problem.
Was this solution helpful?