What does Windows error code 6717 (ERROR_ENLISTMENT_NOT_FOUND) mean?

 
Previous Next
ERROR_RESOURCEMANAGER_NOT_FOUND ERROR_TRANSACTIONMANAGER_NOT_FOUND

ERROR_ENLISTMENT_NOT_FOUND

KTM cannot locate the transaction-to-resource-manager enlistment

ERROR_ENLISTMENT_NOT_FOUND belongs to the Windows Kernel Transaction Manager transaction-processing model. An enlistment is the object connecting one resource manager to one transaction and determining which notifications the RM receives. Recovery code can reopen enlistments and call RecoverEnlistment so commit or in-doubt notifications are redelivered. This status means that specific relationship object cannot be found; the transaction and RM can still exist independently.

Log the enlistment ID together with the transaction and RM IDs. Check whether the enlistment was converted to read-only, completed and closed, or was never durably recorded. During crash recovery, compare the RM log with KTM recovery notifications before assuming every locally recorded transaction must have an enlistment: KTM uses a presumed-abort model and may intentionally have no recovery notification for a transaction that the TM never durably prepared.

What to inspect

  • Keep enlistment, transaction, and RM identifiers together in recovery logs.
  • Check whether the enlistment was read-only or already completed.
  • Apply KTM presumed-abort recovery rules instead of manufacturing a missing enlistment.

References


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