| Previous | Next |
| MQ_ERROR_ILLEGAL_CONTEXT | MQ_ERROR_LABEL_TOO_LONG |
MQ_ERROR_ILLEGAL_SORT_PROPID
Operational meaning
When MQ_ERROR_ILLEGAL_SORT_PROPID appears, start with the queue operation and its property arrays rather than with a broad repair of the Message Queuing service. Its diagnostic boundary is sort property is not eligible. The requested column cannot be used as an AD DS sort key even if it can be returned or filtered.
For MQ_ERROR_ILLEGAL_SORT_PROPID, MQLocateBegin searches public queues registered in the directory; it does not enumerate arbitrary private queues. When diagnosing MQ_ERROR_ILLEGAL_SORT_PROPID, its restriction, projection, and sort structures are translated into a directory-backed query.
When diagnosing MQ_ERROR_ILLEGAL_SORT_PROPID, the locator observes a directory snapshot beginning when MQLocateBegin is called. In the MQ_ERROR_ILLEGAL_SORT_PROPID path, newly replicated objects and properties unsupported as columns or sort keys can produce results that differ from direct queue access.
Where to draw the boundary
| Subsystem | MQLocateBegin directory queries over public-queue metadata |
|---|---|
| Decisive boundary | query restrictions, selected columns, and sort keys must be valid for the AD DS-backed locator |
| Code-specific focus | sort property is not eligible |
| Primary recovery rule | Sort by a supported property or order results after retrieval. |
When diagnosing MQ_ERROR_ILLEGAL_SORT_PROPID, separate a malformed query structure from an AD DS availability error. In the MQ_ERROR_ILLEGAL_SORT_PROPID path, repeating the same invalid MQSORTSET or MQRESTRICTION against another domain controller will not repair it. For MQ_ERROR_ILLEGAL_SORT_PROPID, the code-specific boundary is sort property is not eligible.
Evidence to preserve
- The ad ds mode and domain identity of the caller; associate it explicitly with
MQ_ERROR_ILLEGAL_SORT_PROPID. - When diagnosing
MQ_ERROR_ILLEGAL_SORT_PROPID, the exact property used for filtering, projection, or ordering; capture the value before cleanup or retry changes it. - In the
MQ_ERROR_ILLEGAL_SORT_PROPIDpath, mqrestriction, mqcolumns, and mqsortset as submitted; compare it with a known-good call using the same account and queue type. - For this
MQ_ERROR_ILLEGAL_SORT_PROPIDresult, 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_ERROR_ILLEGAL_SORT_PROPID, 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.
Diagnostic sequence
- Record the unsigned HRESULT,
MQ_ERROR_ILLEGAL_SORT_PROPID, and the native API or COM method before a framework replaces it with a generic exception. - Capture MQRESTRICTION, MQCOLUMNS, and MQSORTSET as submitted.
- Reproduce with the smallest queue/message/property set that still returns
MQ_ERROR_ILLEGAL_SORT_PROPID; change one precondition at a time. - For this
MQ_ERROR_ILLEGAL_SORT_PROPIDresult, verify the postcondition after the failed call: queue existence, message presence, directory object state, transaction outcome, or generated output may differ by result. - For
MQ_ERROR_ILLEGAL_SORT_PROPID, capture the exact property used for filtering, projection, or ordering. - When diagnosing
MQ_ERROR_ILLEGAL_SORT_PROPID, apply the code-specific recovery rule: Sort by a supported property or order results after retrieval.
Handling and recovery
Sort by a supported property or order results after retrieval.
When diagnosing MQ_ERROR_ILLEGAL_SORT_PROPID, an immediate loop around the same call is not recovery. In the MQ_ERROR_ILLEGAL_SORT_PROPID path, define who owns cancellation, handle recreation, transaction reconciliation, and duplicate suppression before another attempt is issued.
Nearby failure boundaries
A directory query shape error is deterministic. For this MQ_ERROR_ILLEGAL_SORT_PROPID result, switching domain controllers cannot make an unsupported column, relation, or sort key valid. The specific focus for MQ_ERROR_ILLEGAL_SORT_PROPID remains sort property is not eligible.
- In the
MQ_ERROR_ILLEGAL_SORT_PROPIDpath, restarting MSMQ before collecting evidence can invalidate handles and erase the first useful event; it is a containment action, not a root-cause diagnosis. - For this
MQ_ERROR_ILLEGAL_SORT_PROPIDresult, granting broad queue or certificate permissions may mask the symptom while creating a security defect. ForMQ_ERROR_ILLEGAL_SORT_PROPID, test the exact identity and access needed by the operation.
Worked example
A migration inventory tool encounters MQ_ERROR_ILLEGAL_SORT_PROPID. For MQ_ERROR_ILLEGAL_SORT_PROPID, it captures the restriction/column/sort structures and validates the query before testing directory availability. When diagnosing MQ_ERROR_ILLEGAL_SORT_PROPID, the acceptance test then changes only the decisive precondition and confirms both the HRESULT and the actual queue/message state.
For MQ_ERROR_ILLEGAL_SORT_PROPID, include a negative test for the nearest misleading diagnosis so monitoring and user guidance do not collapse distinct MSMQ failures into one alert.
References
- Microsoft Open Specifications: MSMQ and directory services — source used for the
MQ_ERROR_ILLEGAL_SORT_PROPIDanalysis. - IETF RFC 4511: LDAP protocol — source used for the
MQ_ERROR_ILLEGAL_SORT_PROPIDanalysis. - Microsoft: Message Queuing error and information codes — source used for the
MQ_ERROR_ILLEGAL_SORT_PROPIDanalysis. - Microsoft: MQLocateBegin — source used for the
MQ_ERROR_ILLEGAL_SORT_PROPIDanalysis.
Looking for a different code? Search another status or error code.
