# MQRC 2034: No message under the browse cursor

Source: https://wndsoftware.com/mainframe-errors/mqrc-2034

### MQRC 2034: No message under the browse cursor

MQRC 2034 means the MQ browse cursor is not on a retrievable message. Check the browse sequence, competing consumers and message expiry.


#### Other names for this code

Also written as `RC2034`, `reason code 2034`, `MQ error 2034`, `MQRC_NO_MSG_UNDER_CURSOR`, `07F2`, `0x07F2`.


### What it means

An MQGET using an under-cursor option expected a message at the current browse position, but none was retrievable there. A successful earlier browse does not reserve that message indefinitely.

IBM lists a cursor still before the first message, another application removing or locking the message, and expiry as possible explanations. In a competing-consumer design this can be an expected race rather than an infrastructure fault.


#### A troubleshooting example

A support tool browses an order, waits while a person reviews it, then attempts a get under cursor. A processing service consumed that order during the pause, so the tool receives 2034. Test this deliberately with two clients: let the tool browse, let the service consume, then resume the tool. The correct interface should explain that the item is no longer available and refresh its view. Treating the result as a network error would send operators in the wrong direction.


### Common causes

- The application uses an under-cursor get before a successful browse establishes a position.
- Another consumer removes or locks the browsed message before the follow-up operation.
- The message expires between the browse and the attempt to retrieve it.


### How to find the problem

- Capture the sequence of browse and under-cursor calls on the same object handle. Verify the first browse actually succeeded.
- Record elapsed time between those calls and the message expiry configuration. Include slow user interaction in the timing.
- Identify other consumers on the queue and reproduce the sequence with two controlled workers. A single-worker test may hide the race.
- Compare MQGMO flags, including any locking behavior. Confirm that the wrapper does not replace or reopen the handle between operations.


### How to fix it

- Handle a lost browse position in the application: browse again or continue according to the queue-processing design. Avoid endlessly repeating the same under-cursor call.
- If the design requires a reservation, evaluate the documented browse-lock options and release behavior. Keep the lock lifetime short and explicit.
- Use a transactional retrieval design when the business process needs atomic ownership. Do not assume browsing itself guarantees that the message remains available.


### What it looks like


```text
Illustrative diagnostic notes; not an IBM message template.
Client A: browse order successfully
Client B: consumes the same order
Client A: MQGET under cursor -> Reason=2034
```


### IBM documentation

[IBM MQ 9.4: 2034 MQRC_NO_MSG_UNDER_CURSOR](https://www.ibm.com/docs/en/ibm-mq/9.4.x?topic=acrc-2034-07f2-rc2034-mqrc-no-msg-under-cursor). Use the documentation for your installed release.

[Report a correction to WND Software](https://wndsoftware.com/contact#message).

Technical reviewer: [Albert Joseph](https://wndsoftware.com/authors/albert-joseph), WND Software.

Updated 2026-10-23. IBM documentation checked for this article. Written in our own words. For the full reference, check IBM’s MQ documentation for your version.


### Related codes

[MQRC 2033 MQRC_NO_MSG_AVAILABLE Read →](https://wndsoftware.com/mainframe-errors/mqrc-2033)
[MQRC 2036 MQRC_NOT_OPEN_FOR_BROWSE Read →](https://wndsoftware.com/mainframe-errors/mqrc-2036)
[MQRC 2037 MQRC_NOT_OPEN_FOR_INPUT Read →](https://wndsoftware.com/mainframe-errors/mqrc-2037)

### Questions


#### Does a successful browse reserve a message?

No. Other consumers and expiry can change availability unless the chosen locking or transactional design provides the required protection.


#### Is 2034 the same as an empty queue?

No. It concerns the current browse position. MQRC 2033 reports that no message matching a get request was available.

[IBM MQ reason codes](https://wndsoftware.com/mainframe-errors/mq-reason-codes) · [MQRC 2033](https://wndsoftware.com/mainframe-errors/mqrc-2033) · [MQRC 2035](https://wndsoftware.com/mainframe-errors/mqrc-2035)

[← All error codes](https://wndsoftware.com/mainframe-errors/)
