| Previous | Next |
| STATUS_FATAL_USER_CALLBACK_EXCEPTION | STATUS_VERIFIER_STOP |
STATUS_ASSERTION_FAILURE
Program logic deliberately stopped at a failed assertion
Assertions encode assumptions that developers expect to remain true: object state, parameter relationships, lock ownership, sequence rules, or internal consistency. This status indicates that an assertion path raised an exception. It is usually a direct programming diagnostic, but the false condition may still be caused by earlier memory corruption or a race.
The expression, source location, build configuration, and surrounding values are more useful than the generic status text. Do not automatically disable the assertion or catch the exception and continue; doing so allows code to operate after its own invariant has failed. Reproduce with symbols and, where possible, enable earlier validation so the first state transition that breaks the invariant is recorded.
What to inspect
- Capture the assertion expression, file, line, and component version.
- Record the values and thread state used to evaluate the invariant.
- Look for earlier corruption, races, or missed lifecycle transitions.
- Fix the invalid state rather than removing the assertion from production builds.
References
- Microsoft Learn: Specific Exceptions
- Microsoft Learn: Exception Dispatching
- Microsoft Windows SDK metadata: ntstatus.h
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.