SCARD_E_NOT_TRANSACTED 0X80100016 Fix That Actually Works
This error means your smart card reader's transaction state is out of whack. The quick fix is resetting the reader via devmgmt.msc or a registry tweak. I'll show you both.
You're trying to use a smart card or a YubiKey, and Windows throws 0X80100016 at you. Makes you want to throw the reader out the window. I get it. The culprit here is almost always a transaction that got started but never finished—maybe the app crashed, maybe you yanked the card mid-read. Here's how you fix it fast.
The Immediate Fix: Reset the Reader
Don't bother reinstalling drivers or running a system file checker first. That rarely helps here. The real fix is a hardware reset via Device Manager.
- Press
Win + Xand select Device Manager. - Expand Smart card readers.
- Right-click your reader (usually something like OMNIKEY 3x21 USB or Microsoft USBSmartCardReader).
- Select Disable device. Wait 5 seconds.
- Right-click again and select Enable device.
That clears the stuck transaction state. Try your card again. 9 times out of 10, this alone fixes it.
If That Doesn't Work: Restart the SCardSvc Service
Sometimes the Windows Smart Card Service holds onto that broken state. Knock it down.
net stop SCardSvc
net start SCardSvc
Run this as admin in Command Prompt or PowerShell. Then reset your reader via Device Manager again. I've seen this combination fix stubborn cases where a simple reboot didn't.
Why This Error Happens
Smart cards work like a mini-database transaction. You start a transaction, do work, then end it. If anything interrupts that—power loss, app crash, card removal during a read—the card reader's internal state gets stuck thinking a transaction is still open. The error 0X80100016 is just Windows saying I tried to call SCardEndTransaction but there's nothing to end. A hardware reset forces the reader to ditch that stale state and start fresh.
Less Common Variations
Corrupted SCardSvc Registry Key
If the reset and service restart don't work, the registry key for the card service might be corrupted. This is rare, but I've seen it after a failed Windows update. Here's the fix:
reg delete "HKLM\SYSTEM\CurrentControlSet\Services\SCardSvc" /v ImagePath /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\SCardSvc" /v ImagePath /t REG_EXPAND_SZ /d "%SystemRoot%\System32\svchost.exe -k LocalServiceAndNoImpersonation" /f
Restart the service after that. This restores the default service path. Only try this if you're comfortable with regedit—backup the key first.
Third-Party Driver Interference
Some USB card readers (especially older Gemalto or OMNIKEY models) have their own driver bundle that conflicts with Windows inbox drivers. If you've installed a vendor-provided driver, try switching back to the Microsoft driver. In Device Manager, right-click the reader, go to Update driver → Browse my computer → Let me pick → select Microsoft USBSmartCardReader. This has saved me on Windows 10 22H2 and 11 23H2.
Power Management Killing the Reader
Windows loves to cut power to USB devices to save energy. That can kill an active transaction. Open Device Manager, find your reader under Smart card readers, right-click → Properties → Power Management. Uncheck Allow the computer to turn off this device to save power. Also check your USB Root Hub entries under Universal Serial Bus controllers—same power management setting there.
Prevention: Don't Yank the Card Mid-Read
This sounds obvious, but it's the #1 cause. Always wait for the app to finish before removing the card. If you're using a YubiKey for smart card auth, don't remove it while Windows is still authenticating. Also keep your reader's firmware updated. Check the manufacturer's site for tools—OMNIKEY and HID Global both have updaters. And make sure Windows is fully patched. Microsoft fixed a related bug in KB5036892 for Windows 11 that caused phantom transactions on certain readers.
If none of this works, test the card on another machine. If it works there, your reader hardware is likely dying. Replace it. They're cheap—$20-$40 for a USB reader. No sense wasting hours on a bad component.
Was this solution helpful?