| Previous | Next |
| CO_E_CLRNOTAVAILABLE | CO_E_SERVER_INIT_TIMEOUT |
CO_E_ASYNC_WORK_REJECTED
COM asynchronous work was rejected by the thread pool
CO_E_ASYNC_WORK_REJECTED is HRESULT 2147500073 (0x80004029) from winerror.h. The documented description is “The thread-pool rejected the submitted asynchronous work.” The value must be interpreted at COM runtime work submitted to a thread pool during activation, cleanup, tracking, or callback dispatch.
The target thread pool would not accept the work item. The operational record needs the native value, symbolic constant, component build, and call phase; the message alone is insufficient.
Where the result appears
- This result may surface in COM runtime work submitted to a thread pool during activation, cleanup, tracking, or callback dispatch.
Separate caller state from runtime and server state first; otherwise cleanup and retry may target the wrong generation of the operation.
Typical causes and interpretation
Common cause categories are: the pool is closing; queue limits are exceeded; process shutdown has begun; callback environment is invalid. Each possible cause of this result predicts different outputs and recovery behavior, which should be verified explicitly.
Key distinction: the target thread pool would not accept the work item.
Correct handling and recovery
The appropriate recovery is to stop accepting new operations during shutdown, bound queue growth, use a valid callback environment, and retry only after a new healthy pool exists. Repeat the operation only after the failed condition has changed and the caller can distinguish a duplicate effect.
Practical scenario
A server continues scheduling cleanup after closing its pool; the shutdown sequence is reordered so producers stop before the pool closes.
An automated test should verify raw HRESULT, output ownership, cleanup behavior, and the absence of an unsafe automatic retry.
Difference from related HRESULTs
HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_QUOTA) can indicate resource pressure; this code specifically reports rejection by the asynchronous work facility.
The comparison matters operationally: one result may permit fallback while the other requires repair, cancellation, or state reconciliation.
Developer and administrator guidance
Code handling this result should classify it by lifecycle and ownership rather than by the high bit alone. For CO_E_ASYNC_WORK_REJECTED, initialization failures normally require rebuilding the process or thread environment, capability results require a fallback, and uncertain remote outcomes require reconciliation before retry.
Operational dashboards should keep this result distinct from generic COM failures and attach deployment, service, package, runtime, policy, and architecture dimensions. Administrators should avoid broad registry edits, blanket firewall changes, or permission expansion unless the captured evidence identifies that subsystem.
References
Looking for a different code? Search another status or error code.