What does NTSTATUS 0xC0000029 (STATUS_INVALID_UNWIND_TARGET) mean?

 
Previous Next
STATUS_BAD_STACK STATUS_NOT_LOCKED

STATUS_INVALID_UNWIND_TARGET

The unwind target could not be reached safely

An unwind target must identify a valid frame in the active stack and must be reachable in the direction the dispatcher removes frames. This status indicates that the supplied target or reconstructed frame did not meet that contract. It can arise from an incorrect native RtlUnwind call, a stale frame pointer, stack corruption, or a runtime mixing contexts from different threads or stacks.

Do not substitute the current frame simply to avoid the status. Record the target frame, current stack bounds, and every frame visited before rejection. Fiber, coroutine, or callback runtimes must keep each stack’s context separate; an address valid in another reserved stack is still an invalid target for the current unwind.

What to inspect

  • Compare the target frame with current stack base, limit, and unwind direction.
  • Confirm that the target belongs to the same thread and active stack.
  • Inspect native unwind callers and stored continuation contexts.
  • Look for stack switching or callback boundaries immediately before the failure.

References


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