MQRC 2027: Reply-to queue missing
MQRC 2027 means a request or report needs a reply queue but MQMD.ReplyToQ is blank. Check message type and report options before retrying the put.
Other names for this code
Also written as RC2027, reason code 2027, MQ error 2027, MQRC_MISSING_REPLY_TO_Q, 07EB, 0x07EB.
What it means
MQPUT or MQPUT1 was asked to send a message whose settings require somewhere to return a reply or report. The descriptor supplies no reply queue. IBM identifies two triggers: MQMT_
A destination queue for the outgoing business message does not automatically become its reply queue. The sender must supply a return destination appropriate to the application design.
A troubleshooting example
A support change enables exception reports on outgoing payment requests. The normal flow previously used no replies, so ReplyToQ remains blank. Every put now fails with 2027. Compare the before-and-after descriptor settings and choose an approved report queue. Send a test request that deliberately triggers a report and confirm the sender can consume it. Checking only that the outbound put succeeds would leave the new report path untested.
Common causes
- The application changes a message from a datagram to a request without populating ReplyToQ.
- A diagnostic report option is enabled while the existing descriptor has no return address.
- A dynamic reply queue was created, but its actual name was not copied into the outgoing descriptor.
How to find the problem
- Inspect MsgType, Report, ReplyToQ and ReplyToQMgr immediately before the failing put. Log descriptor settings separately from payload text.
- Trace the code path that enables request or report behavior. Compare it with a successful datagram path using the same destination.
- If a model queue is involved, distinguish the model's name from the created dynamic queue name returned by MQOPEN.
- Confirm the receiver's reply contract and the sender's receive setup. A nonblank but unusable return address only moves the failure later.
How to fix it
- Set ReplyToQ to the real queue that will receive the reply or report. Use the actual created name when using a dynamic queue.
- If the application does not need replies or reports, correct the message type or report configuration according to its interface contract.
- Test an end-to-end reply, including identifiers, queue lifetime and permissions. Retrying the original unchanged descriptor will reproduce 2027.
What it looks like
Illustrative diagnostic notes; not an IBM message template. MQMD.MsgType = MQMT_REQUEST MQMD.ReplyToQ = blanks MQPUT Reason=2027 Set a real return destination before retry.
IBM documentation
IBM MQ 9.4: 2027 MQRC_MISSING_REPLY_TO_Q. Use the documentation for your installed release.
Related codes
Questions
Can ReplyToQ contain the model queue name?
Use the actual queue that will receive the reply. A model is a template; using it as a reply destination can produce MQRC 2057.
Why did reports cause 2027 on a datagram?
A requested report also needs a return queue. Review Report as well as MsgType when inspecting the descriptor.