| Previous | Next |
| SCARD_E_NO_MEMORY | SCARD_E_INSUFFICIENT_BUFFER |
SCARD_F_WAITED_TOO_LONG
Do not confuse this with a caller timeout
SCARD_F_WAITED_TOO_LONG is a Smart Card Resource Manager failure status. It is different from SCARD_E_TIMEOUT, which reports that a caller-supplied waiting period expired. Here the PC/SC stack detected that one of its own consistency timers elapsed while it was maintaining a reader, card, context, or outstanding operation.
Because the code belongs to the resource-manager layer, an immediate loop around the same call can hide the real problem. Record the API that returned it, the reader name, the resource-manager context, and whether another thread was waiting in SCardGetStatusChange or holding a card transaction. Then query the reader state again and create a fresh context if the service or reader state changed.
Useful checks
- Distinguish an application wait limit from PC/SC infrastructure failure in logs; they require different recovery paths.
- Check that long-running card transactions are ended promptly. Windows documents that an idle card transaction can cause a reset.
- Inspect reader and Smart Card service logs before restarting the application, especially when the result is repeatable with one reader.
References
- Microsoft: Smart Card return values
- PCSC-lite: error codes
- PC/SC Workgroup: specifications
- Microsoft: SCardBeginTransaction
Looking for a different code? Search another status or error code.