| Previous | Next |
| MQ_ERROR_LABEL_BUFFER_TOO_SMALL | MQ_ERROR_MQIS_READONLY_MODE |
MQ_ERROR_MQIS_SERVER_EMPTY
Why the exact HRESULT matters
When MQ_ERROR_MQIS_SERVER_EMPTY 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 legacy MQIS server list is empty. This is tied to pre-AD DS enterprise configuration stored for old MSMQ deployments.
For MQ_ERROR_MQIS_SERVER_EMPTY, establish the originating binary, operating-system build, MSMQ generation, and migration phase. When diagnosing MQ_ERROR_MQIS_SERVER_EMPTY, if those cannot be proved, treat the code as historical context rather than a current configuration prescription.
When diagnosing MQ_ERROR_MQIS_SERVER_EMPTY, A legacy code found in an event archive is evidence about the deployment generation. In the MQ_ERROR_MQIS_SERVER_EMPTY path, copying old DLLs or registry settings into a current Windows installation can make the system less recoverable.
Subsystem context
| Subsystem | a legacy MSMQ 1.0/enterprise setup or compatibility path retained in mq.h |
|---|---|
| Decisive boundary | the symbolic value may describe an obsolete component rather than a supported modern recovery action |
| Code-specific focus | legacy MQIS server list is empty |
| Primary recovery rule | Do not create registry values on a modern system without proving that the legacy path is active. |
When diagnosing MQ_ERROR_MQIS_SERVER_EMPTY, compatibility names can outlive the component that once emitted them. In the MQ_ERROR_MQIS_SERVER_EMPTY path, remediation must match the historical architecture, not only the symbolic text. For MQ_ERROR_MQIS_SERVER_EMPTY, the code-specific boundary is legacy MQIS server list is empty.
Minimum useful telemetry
- Installation or migration component name and original event text; associate it explicitly with
MQ_ERROR_MQIS_SERVER_EMPTY. - When diagnosing
MQ_ERROR_MQIS_SERVER_EMPTY, whether a current api returned the value or an old log merely contains it; capture the value before cleanup or retry changes it. - In the
MQ_ERROR_MQIS_SERVER_EMPTYpath, windows and msmq version where the code was captured; compare it with a known-good call using the same account and queue type. - For this
MQ_ERROR_MQIS_SERVER_EMPTYresult, 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_MQIS_SERVER_EMPTY, 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
- Record the unsigned HRESULT,
MQ_ERROR_MQIS_SERVER_EMPTY, and the native API or COM method before a framework replaces it with a generic exception. - When diagnosing
MQ_ERROR_MQIS_SERVER_EMPTY, verify the postcondition after the failed call: queue existence, message presence, directory object state, transaction outcome, or generated output may differ by result. - In the
MQ_ERROR_MQIS_SERVER_EMPTYpath, capture Windows and MSMQ version where the code was captured. - For this
MQ_ERROR_MQIS_SERVER_EMPTYresult, capture installation or migration component name and original event text. - Reproduce with the smallest queue/message/property set that still returns
MQ_ERROR_MQIS_SERVER_EMPTY; change one precondition at a time. - When diagnosing
MQ_ERROR_MQIS_SERVER_EMPTY, apply the code-specific recovery rule: Do not create registry values on a modern system without proving that the legacy path is active.
Retry and cleanup
Do not create registry values on a modern system without proving that the legacy path is active.
When diagnosing MQ_ERROR_MQIS_SERVER_EMPTY, do not hide this HRESULT behind an unlimited framework retry. In the MQ_ERROR_MQIS_SERVER_EMPTY path, require a verified precondition change and preserve the original correlation identifier across the next attempt.
Avoiding a false diagnosis
In the MQ_ERROR_MQIS_SERVER_EMPTY path, do not copy retired DLLs or recreate obsolete registry topology until the originating MSMQ generation and component are proved. The specific focus for MQ_ERROR_MQIS_SERVER_EMPTY remains legacy MQIS server list is empty.
- In the
MQ_ERROR_MQIS_SERVER_EMPTYpath, 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_ERROR_MQIS_SERVER_EMPTYresult, 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 migration assistant encounters MQ_ERROR_MQIS_SERVER_EMPTY. For MQ_ERROR_MQIS_SERVER_EMPTY, it identifies the originating MSMQ generation and uses migration documentation instead of modifying a current installation blindly. When diagnosing MQ_ERROR_MQIS_SERVER_EMPTY, 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_ERROR_MQIS_SERVER_EMPTY, and test that a retry does not duplicate messages or directory objects.
References
- Microsoft Open Specifications: MSMQ protocols overview — source used for the
MQ_ERROR_MQIS_SERVER_EMPTYanalysis. - Microsoft: Message Queuing error and information codes — source used for the
MQ_ERROR_MQIS_SERVER_EMPTYanalysis. - Microsoft: Message Queuing overview — source used for the
MQ_ERROR_MQIS_SERVER_EMPTYanalysis.
Looking for a different code? Search another status or error code.