| Previous | Next |
| STATUS_TRANSACTION_TIMED_OUT | STATUS_TRANSACTION_NO_MATCH |
STATUS_TRANSACTION_NO_RELEASE
The missing event is a release in the response lifecycle, not the response itself
STATUS_TRANSACTION_NO_RELEASE is one of the few NTSTATUS messages that identifies the missing phase directly: response state remains pending because its expected release phase did not arrive. That puts the failure after response state exists. It is therefore materially different from STATUS_TRANSACTION_TIMED_OUT, where a request waited for a response, and from STATUS_TRANSACTION_NO_MATCH, where a token cannot be correlated with a current transaction.
Legacy Windows transport interfaces demonstrate explicit resource-lifetime handoffs. For example, TDI chained receive processing allows a client to retain descriptors and later return them through TdiReturnChainedReceives; the transport can keep lower-level resources until the client returns those descriptors. This is not proof that STATUS_TRANSACTION_NO_RELEASE refers to chained receives, but it is a documented example of a transport protocol stack having a separate release phase after data/response delivery.
Diagnose the code as a lifecycle/ownership imbalance. Capture when the response became pending, which consumer received it, the expected release token or identifier, and teardown events. Look for double-dispatch, lost completion paths, cancellation that bypasses cleanup, and clients that retain transport resources indefinitely. Extending the response timeout will not fix a missing release path; it merely keeps the leaked pending state alive longer.
What to inspect
- Trace response delivery to the consumer and the expected release/completion callback.
- Record resource ownership before cancellation, disconnect, and teardown.
- Look for paths that return early after receiving a response without releasing transport state.
References
- Microsoft Open Specifications: NTSTATUS values
- Microsoft: returning chained TDI receive descriptors
- Microsoft: TDI receive resource lifetime
- Microsoft: TDI dispatch and object state
- Microsoft: TDI_REQUEST structure
Looking for a different code? Search another status or error code.