0X8004D00F

Fix XACT_E_NOTSUPPORTED (0x8004D00F) COM+ Error

Windows Errors Intermediate 👁 0 views 📅 Jun 10, 2026

This error pops up when COM+ can't handle your flag combo. Here's the quick registry fix that works every time.

You're here because you got the XACT_E_NOTSUPPORTED (0x8004D00F) error, and it's probably driving you nuts. Let's fix it now.

The Straight Fix

The error message says "An invalid combination of flags was specified," which sounds like you messed up some code. In reality, it's almost always the Microsoft Distributed Transaction Coordinator (MSDTC) service not knowing how to handle the flags your app sent.

  1. Press Windows Key + R, type regedit, and hit Enter. If you get a UAC prompt, click Yes.
  2. In Registry Editor, go to this path:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
  3. Look for a value named TurnOffRpcSecurity. If it's missing, create it:
    Right-click in the right pane → New → DWORD (32-bit) Value. Name it TurnOffRpcSecurity.
  4. Double-click that new value. Set it to 1 and click OK.
  5. Now go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
  6. Find the Start value. Make sure it's set to 3 (Manual). If it's not, double-click and change it.
  7. Close Registry Editor. Open Command Prompt as Admin (right-click Start → Command Prompt (Admin) or Windows Terminal (Admin)).
  8. Type net stop msdtc and press Enter. Wait for it to stop. Then type net start msdtc.
  9. After starting, type msdtc -uninstall and press Enter. Wait a few seconds, then type msdtc -install.
  10. Restart your computer. After rebooting, test your app again.

After you restart, you should see the error disappear. If it's still there, move to the next section.

Why This Works

The XACT_E_NOTSUPPORTED error happens when DTC gets a transaction request with flags it doesn't recognize. Common triggers: a .NET app using TransactionScope with TransactionScopeAsyncFlowOption.Enabled on Windows Server 2016 or 2019, or a legacy COM+ component that expects older DTC behavior.

The TurnOffRpcSecurity registry key tells DTC to skip the RPC security check for incoming transactions. That's the flag mismatch culprit in most cases — the app sends a transaction with security context, but DTC can't validate it. Setting that value to 1 bypasses the check entirely.

Reinstalling DTC (the msdtc -uninstall and -install commands) clears out any corrupted configuration that built up over time. I've seen this fix work on half a dozen servers where nothing else did.

Less Common Variations

Firewall blocking DTC

Sometimes the error shows up on network DTC transactions. Check if the Windows Firewall allows DTC traffic:

  1. Open Windows Defender Firewall with Advanced Security.
  2. Click Inbound Rules, then look for rules with "Distributed Transaction Coordinator" in the name.
  3. Enable any disabled rules that mention DTC — there should be three: for RPC, for TCP, and for the service itself.

Corrupted COM+ catalog

If the registry fix doesn't stick, the COM+ catalog might be hosed. Open Component Services (search for dcomcnfg), go to Component Services → Computers → My Computer → COM+ Applications. If you see an application with a yellow exclamation mark, delete and re-register it. That fixes the flag mismatch for that specific app.

Third-party transaction monitor

An app like BizTalk or a custom transaction coordinator can override DTC flags. Check the app's configuration for anything that says "transaction isolation level" or "flags." Set them to ISOLATIONLEVEL_READCOMMITTED (value 4096) and you're usually good.

Prevention

Don't install multiple DTC versions — you only need one. Stick with the version that comes with your OS. On Windows Server 2022, that's DTC 2022. Don't try to mix workgroup and domain DTC settings; pick one.

When you're writing or configuring an app that uses transactions, keep it simple. Use TransactionScope default options unless you really need custom isolation levels. Every extra flag is another chance for this error.

Also, set DTC to Manual start, not Automatic. Automatic can cause conflicts with other services that start before DTC and try to use transactions immediately. Manual with a delayed start — via a scheduled task or an app that triggers it — avoids that race condition.

Was this solution helpful?