| Previous | Next |
| ERROR_PROFILING_AT_LIMIT | ERROR_CANT_TERMINATE_SELF |
ERROR_CANT_WAIT
What this result means
ERROR_CANT_WAIT is a Windows system result. The requested operation cannot complete immediately and would need to wait, but the current execution context is not allowed to block. This is common in kernel, asynchronous, loader, and callback-sensitive paths.
Why it can appear
- code performs pageable or blocking I/O at an elevated IRQL or nonblocking callback
- a lock, loader callback, or teardown path forbids waiting
- an asynchronous API was invoked as if it were synchronous
- a driver or runtime contract requires the work to be deferred
Troubleshooting steps
- Record thread context, IRQL where applicable, held locks, callback type, and the exact API
- Capture whether the resource was contended or I/O was pending
- Inspect stack traces for loader lock, filesystem callbacks, completion routines, or dispatch paths
- Verify documented waitability requirements for the API
Correct recovery and handling
Queue the operation to an appropriate worker context or redesign it as asynchronous. Do not busy-loop or sleep in a context that forbids waiting. Release locks before potentially blocking work when the contract permits.
Related and easily confused conditions
The resource may be healthy; the problem is the calling context. A later retry from a normal worker thread can succeed, while an immediate retry from the same callback usually cannot.
References
Looking for a different code? Search another status or error code.
