What does HRESULT 0xC00E0068 (MQ_CORRUPTED_QUEUE_WAS_DELETED) mean?

 
Previous Next
MQ_ERROR_DEPEND_WKS_LICENSE_OVERFLOW MQ_ERROR_REMOTE_MACHINE_NOT_AVAILABLE

MQ_CORRUPTED_QUEUE_WAS_DELETED

Why the exact HRESULT matters

MQ_CORRUPTED_QUEUE_WAS_DELETED belongs to the Message Queuing HRESULT facility, but its useful meaning is narrower than a generic messaging failure. Its diagnostic boundary is MSMQ removed a corrupted LQS queue definition. The service deleted local metadata to avoid loading a damaged queue record; queued data and directory registration may now disagree.

For MQ_CORRUPTED_QUEUE_WAS_DELETED, MSMQ storage diagnosis should preserve the first event before cleanup utilities or queue recreation alter the evidence. When diagnosing MQ_CORRUPTED_QUEUE_WAS_DELETED, free space alone is insufficient; quotas and storage-file health also matter.

When diagnosing MQ_CORRUPTED_QUEUE_WAS_DELETED, express and recoverable messages have different durability expectations. In the MQ_CORRUPTED_QUEUE_WAS_DELETED path, falling back silently changes delivery guarantees and is not a safe generic recovery.

Subsystem context

Subsystemdurable MSMQ storage for recoverable, transactional, and journal messages
Decisive boundaryaccepting a send request is different from successfully persisting all required message data and queue metadata
Code-specific focusMSMQ removed a corrupted LQS queue definition
Primary recovery rulePreserve the event, storage files, and backups before recreating or restoring the queue.

When diagnosing MQ_CORRUPTED_QUEUE_WAS_DELETED, A successful address lookup or queue open does not prove durable storage is healthy. Persistence is a later, separately failing boundary. For MQ_CORRUPTED_QUEUE_WAS_DELETED, the code-specific boundary is MSMQ removed a corrupted LQS queue definition.

Minimum useful telemetry

  • Queue quota, machine quota, message size, and storage path permissions; associate it explicitly with MQ_CORRUPTED_QUEUE_WAS_DELETED.
  • When diagnosing MQ_CORRUPTED_QUEUE_WAS_DELETED, message delivery mode and journaling settings; capture the value before cleanup or retry changes it.
  • In the MQ_CORRUPTED_QUEUE_WAS_DELETED path, free disk space, storage volume health, and msmq event log entries; compare it with a known-good call using the same account and queue type.
  • For this MQ_CORRUPTED_QUEUE_WAS_DELETED result, record the queue path or format name, local/remote placement, transactional flag, caller SID, process build, and UTC correlation ID when they apply.

For MQ_CORRUPTED_QUEUE_WAS_DELETED, log certificate thumbprints, provider names, SIDs, GUIDs, lengths, and hashes where useful, but do not log private keys, symmetric keys, credentials, or confidential message bodies.

Step-by-step diagnosis

  1. Record the unsigned HRESULT, MQ_CORRUPTED_QUEUE_WAS_DELETED, and the native API or COM method before a framework replaces it with a generic exception.
  2. Capture message delivery mode and journaling settings.
  3. In the MQ_CORRUPTED_QUEUE_WAS_DELETED path, capture free disk space, storage volume health, and MSMQ event log entries.
  4. Reproduce with the smallest queue/message/property set that still returns MQ_CORRUPTED_QUEUE_WAS_DELETED; change one precondition at a time.
  5. For MQ_CORRUPTED_QUEUE_WAS_DELETED, verify the postcondition after the failed call: queue existence, message presence, directory object state, transaction outcome, or generated output may differ by result.
  6. When diagnosing MQ_CORRUPTED_QUEUE_WAS_DELETED, apply the code-specific recovery rule: Preserve the event, storage files, and backups before recreating or restoring the queue.

Retry and cleanup

Preserve the event, storage files, and backups before recreating or restoring the queue.

When diagnosing MQ_CORRUPTED_QUEUE_WAS_DELETED, the retry decision must account for side effects that may already exist. In the MQ_CORRUPTED_QUEUE_WAS_DELETED path, query queue, message, directory, or transaction state first whenever the result leaves completion uncertain.

Avoiding a false diagnosis

In the MQ_CORRUPTED_QUEUE_WAS_DELETED path, A running MSMQ service and available free space do not rule out quota, metadata, permission, or durable-write failures. The specific focus for MQ_CORRUPTED_QUEUE_WAS_DELETED remains MSMQ removed a corrupted LQS queue definition.

  • In the MQ_CORRUPTED_QUEUE_WAS_DELETED path, A successful test under an interactive administrator account does not prove that the production service account has the same profile, token, directory access, or key permissions.
  • For this MQ_CORRUPTED_QUEUE_WAS_DELETED result, restarting MSMQ before collecting evidence can invalidate handles and erase the first useful event; it is a containment action, not a root-cause diagnosis.

Example

A journal-enabled queue encounters MQ_CORRUPTED_QUEUE_WAS_DELETED. For MQ_CORRUPTED_QUEUE_WAS_DELETED, it preserves MSMQ events and storage evidence, repairs quota/volume conditions, and verifies durability without downgrading delivery. When diagnosing MQ_CORRUPTED_QUEUE_WAS_DELETED, the acceptance test then changes only the decisive precondition and confirms both the HRESULT and the actual queue/message state.

Automated coverage should preserve the original arrays/identities, confirm that cleanup is safe after MQ_CORRUPTED_QUEUE_WAS_DELETED, and test that a retry does not duplicate messages or directory objects.

References


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