What does Windows error code 699 (ERROR_THREAD_WAS_SUSPENDED) mean?

 
Previous Next
ERROR_OBJECT_NAME_EXISTS ERROR_IMAGE_NOT_AT_BASE

ERROR_THREAD_WAS_SUSPENDED

What ERROR_THREAD_WAS_SUSPENDED means

A terminating thread had been suspended and Windows resumed it so termination could complete. In practical terms, this status belongs to thread lifetime management: thread suspension intersects with termination and the system repairs the state to finish teardown.

Typical causes

  • A debugger left the thread suspended while the process was closing
  • Application code terminated a thread whose suspend count was nonzero
  • A race occurred between inspection, suspension, and shutdown

How to investigate

  1. Log suspend, resume, and termination operations with thread IDs
  2. Check debugger and profiler cleanup ordering
  3. Review whether SuspendThread is being used as a synchronization primitive

Developer guidance

Avoid relying on suspension for ownership or synchronization. A suspended thread can hold locks and resources, so process-level shutdown may be safer than attempting continued execution.

References


Looking for a different code? Search another status or error code.