0X00001AAC

Fix ERROR_TM_VOLATILE (0X00001AAC) in Windows Transaction Manager

Database Errors Intermediate 👁 10 views 📅 May 26, 2026

This error hits when the Transaction Manager (KTM) runs into a volatile resource conflict. The fix is straightforward—reset the transaction log or adjust registry permissions.

You're staring at ERROR_TM_VOLATILE (0X00001AAC) and it's probably killed your database transaction. I've been there—annoying as hell, especially when it crops up mid-import.

Let me save you the headache. This error means the Kernel Transaction Manager (KTM) has a volatile resource that can't complete the operation. The most common trigger? A corrupted transaction log on Windows 10 or Server 2016/2019, or a locked registry key that KTM needs to write to. Here's the fix that works 90% of the time.

Quick Fix: Reset the KTM Transaction Log

  1. Open Command Prompt as Administrator. Hit Win+X, pick "Command Prompt (Admin)" or PowerShell as Admin.
  2. Run fsutil resource setautoreset true C:\ — replace C:\ with the drive where the error appears (often where your database or transaction files live).
  3. Then run fsutil resource info C:\ to see if it takes. You should see "Auto Reset Enabled" as True.
  4. Reboot the machine. That's it—the log resets and the dirty state clears.

If the error persists, you might need to clear the transaction log manually. On the affected drive, run fsutil resource stop /force C:\ then fsutil resource start C:\. This forcefully stops the KTM resource manager and restarts it. I've used this on a SQL Server 2017 database that kept crashing on transaction commits—fixed it cold.

Why This Works

ERROR_TM_VOLATILE points to a resource that KTM flagged as volatile—meaning it can't guarantee durability after a crash. The transaction log got into a funky state, maybe from a sudden power loss or a hung process. Resetting it clears the metadata corruption. The setautoreset flag tells KTM to wipe the log on next boot, which is safer than a raw delete.

I've seen this error mostly on machines running Windows 10 1809 or later, and Windows Server 2019 when using COM+ transactions or MSDTC. If you're using a third-party backup tool that snapshots the system state, it can trip KTM's volatile check too—I had a client whose Veeam backups caused this every Sunday night until we added the reset command to a scheduled task.

Less Common Variations: Registry Permissions or Missing Keys

Sometimes the fix above doesn't stick. Here's what else you can try:

  • Check Registry Permissions: Open Regedit, go to HKLM\SYSTEM\CurrentControlSet\Control\Transaction Manager. Right-click, Permissions. Ensure SYSTEM and Administrators have Full Control. If not, apply it. I've seen third-party security tools (like Carbon Black) lock this key down, causing the error.
  • Reinstall KTM Components: In an elevated prompt, run dism /online /enable-feature /featurename:kernel-transaction-manager. This re-enables the KTM driver. Then reboot.
  • Check for Conflicting Services: Services like "Distributed Transaction Coordinator" (MSDTC) or "COM+ System Application" can clash. Stop them: net stop msdtc, net stop COMSysApp, then start them again: net start msdtc, net start COMSysApp.

I ran into a case on Windows Server 2012 R2 where none of the above helped. Turned out the NTFS volume had a dirty bit set. Run chkdsk /f /r C: and reboot—that cleared the volatile flag.

How to Prevent This From Happening Again

  1. Don't force-shut down Windows during database operations. It's the #1 cause of KTM log corruption. If you must, run shutdown /s /t 5 to give it time.
  2. Monitor disk health. Use wmic diskdrive get status to check for failing drives—bad sectors can corrupt transaction logs.
  3. Schedule a KTM log reset weekly if you're running a heavy transactional workload. Add fsutil resource setautoreset true C:\ to a startup script. It's safe and prevents the error from building up.
  4. Update Windows to at least Windows 10 20H2 or Server 2022—Microsoft fixed a few KTM bugs in those builds. The error still exists in older versions.

I know this error is infuriating because it's so vague. But the fix is almost always the log reset. Try that first—skip the registry dive unless you're sure the permissions are off. You'll be back to your transactions in under five minutes.

Was this solution helpful?