What does NTSTATUS 0xC0000211 (STATUS_TRANSACTION_NO_RELEASE) mean?

 
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


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