| Previous | Next |
| MQ_ERROR_CANNOT_LOAD_MQDSSRV | MQ_ERROR_MESSAGE_NOT_FOUND |
MQ_ERROR_PROPERTIES_CONFLICT
What this result actually narrows down
Applications should keep MQ_ERROR_PROPERTIES_CONFLICT attached to the exact MSMQ call that produced it; translating it immediately to “queue error” discards the diagnostic boundary. The result marks mutually exclusive MSMQ properties supplied together. Response queue object and response format name are one documented conflict; only one representation should own the value.
For MQ_ERROR_PROPERTIES_CONFLICT, the property namespace is split among message, queue, computer, private-computer, and management properties. When diagnosing MQ_ERROR_PROPERTIES_CONFLICT, A numeric identifier meaningful in one structure is not automatically legal in another API.
When diagnosing MQ_ERROR_PROPERTIES_CONFLICT, validation occurs in layers: identifier recognition, variant type, buffer shape, value range, required companions, and operation eligibility. In the MQ_ERROR_PROPERTIES_CONFLICT path, these layers correspond to different MSMQ HRESULTs and different fixes.
MSMQ objects involved
| Subsystem | MSMQ property arrays and their parallel identifier, value, and status elements |
|---|---|
| Decisive boundary | the property identifier, VARTYPE, value, operation, and buffer ownership are validated separately |
| Code-specific focus | mutually exclusive MSMQ properties supplied together |
| Primary recovery rule | Define precedence in application code and emit a single canonical property. |
When diagnosing MQ_ERROR_PROPERTIES_CONFLICT, do not merge this result with other property failures: identifier, VARTYPE, value, size, required companions, and operation eligibility are diagnosed by different codes. For MQ_ERROR_PROPERTIES_CONFLICT, the code-specific boundary is mutually exclusive MSMQ properties supplied together.
Triage data
- The complete apropid/apropvar/astatus triples in original order; associate it explicitly with
MQ_ERROR_PROPERTIES_CONFLICT. - When diagnosing
MQ_ERROR_PROPERTIES_CONFLICT, the api name and whether the structure was input, output, or both; capture the value before cleanup or retry changes it. - In the
MQ_ERROR_PROPERTIES_CONFLICTpath, the first failing property rather than only the aggregate hresult; compare it with a known-good call using the same account and queue type. - For this
MQ_ERROR_PROPERTIES_CONFLICTresult, 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_PROPERTIES_CONFLICT, 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.
A safe investigation order
- Record the unsigned HRESULT,
MQ_ERROR_PROPERTIES_CONFLICT, and the native API or COM method before a framework replaces it with a generic exception. - When diagnosing
MQ_ERROR_PROPERTIES_CONFLICT, capture the complete aPropID/aPropVar/aStatus triples in original order. - In the
MQ_ERROR_PROPERTIES_CONFLICTpath, capture the API name and whether the structure was input, output, or both. - Reproduce with the smallest queue/message/property set that still returns
MQ_ERROR_PROPERTIES_CONFLICT; change one precondition at a time. - For
MQ_ERROR_PROPERTIES_CONFLICT, verify the postcondition after the failed call: queue existence, message presence, directory object state, transaction outcome, or generated output may differ by result. - When diagnosing
MQ_ERROR_PROPERTIES_CONFLICT, apply the code-specific recovery rule: Define precedence in application code and emit a single canonical property.
Correct response
Define precedence in application code and emit a single canonical property.
When diagnosing MQ_ERROR_PROPERTIES_CONFLICT, an immediate loop around the same call is not recovery. In the MQ_ERROR_PROPERTIES_CONFLICT path, define who owns cancellation, handle recreation, transaction reconciliation, and duplicate suppression before another attempt is issued.
What this code is not
In the MQ_ERROR_PROPERTIES_CONFLICT path, changing a queue ACL or restarting the service does not correct an invalid identifier, VARTYPE, value, structure, or property combination. The specific focus for MQ_ERROR_PROPERTIES_CONFLICT remains mutually exclusive MSMQ properties supplied together.
- In the
MQ_ERROR_PROPERTIES_CONFLICTpath, granting broad queue or certificate permissions may mask the symptom while creating a security defect. For thisMQ_ERROR_PROPERTIES_CONFLICTresult, test the exact identity and access needed by the operation. - For this
MQ_ERROR_PROPERTIES_CONFLICTresult, changing queue names, deleting directory objects, or recreating certificates without reconciliation can create a second object while callers still reference the first.
Example failure path
A queue configuration service encounters MQ_ERROR_PROPERTIES_CONFLICT. For MQ_ERROR_PROPERTIES_CONFLICT, it logs the rejected property index and rebuilds the request from a typed schema instead of retrying the same arrays. When diagnosing MQ_ERROR_PROPERTIES_CONFLICT, the acceptance test then changes only the decisive precondition and confirms both the HRESULT and the actual queue/message state.
For MQ_ERROR_PROPERTIES_CONFLICT, include a negative test for the nearest misleading diagnosis so monitoring and user guidance do not collapse distinct MSMQ failures into one alert.
Build one canonical property representation
MQ_ERROR_PROPERTIES_CONFLICT is caused by two individually recognizable properties that express the same or mutually exclusive choice. The documented response-queue example can occur when one layer supplies an object handle while another adds the corresponding format-name property. Log the final native property array after all wrappers, defaults, and middleware have modified it.
- Assign one owner for response destination, connector metadata, privacy, and other dependent fields.
- Validate conflicts after merging configuration sources, not only when each source is parsed independently.
- Remove the losing representation instead of relying on property order, because this result is not a duplicate-property warning.
Technical references
- Microsoft: Message Queuing error and information codes — source used for the
MQ_ERROR_PROPERTIES_CONFLICTanalysis. - Microsoft: queue properties and MQQUEUEPROPS — source used for the
MQ_ERROR_PROPERTIES_CONFLICTanalysis. - Microsoft: MSMQ message properties — source used for the
MQ_ERROR_PROPERTIES_CONFLICTanalysis. - Microsoft: MQCreateQueue — source used for the
MQ_ERROR_PROPERTIES_CONFLICTanalysis.
Looking for a different code? Search another status or error code.