# MQRC 2090: Wait interval not valid

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

### MQRC 2090: Wait interval not valid

MQRC 2090 means MQGMO.WaitInterval is invalid. Check milliseconds, signed values and configuration parsing before retrying the get call.


#### Other names for this code

Also written as `RC2090`, `reason code 2090`, `MQ error 2090`, `MQRC_WAIT_INTERVAL_ERROR`, `082A`, `0x082A`.


### What it means

MQGET rejected the wait interval in its get-message options. IBM specifies a nonnegative value or the defined MQWI_UNLIMITED constant. Other negative values are invalid.

Separate the interval field from the wait option and from connection or network timeouts. They describe different stages of a consumer's behavior.


#### A troubleshooting example

A request has a 30-second processing deadline. After a slow initialization step, the code calculates a remaining wait of minus 200 milliseconds and passes it to MQGET. The result is 2090 rather than an immediate empty-queue result. Test the expired-deadline branch directly. Decide whether it should skip the get or use a zero interval, then keep that decision separate from ordinary retry logic. Increasing the original timeout alone would merely make the same edge case less frequent.


### Common causes

- A timeout calculation becomes negative after subtracting elapsed time from a deadline.
- A seconds-to-milliseconds conversion overflows the field or uses the wrong units.
- Configuration supplies an arbitrary negative sentinel instead of the MQ constant.


### How to find the problem

- Log the actual signed WaitInterval immediately before the call. Compare it with the configured value and all intermediate conversions.
- Inspect the MQGMO options as well as the interval. Confirm whether waiting is intended for this operation.
- Test boundary conditions: zero, a short interval, an expired deadline and the documented unlimited constant.
- Check how the consumer exits during shutdown. An unlimited wait can affect responsiveness even when the field value is valid.


### How to fix it

- Validate configuration and computed timeouts before calling MQ. Clamp an expired remaining-time calculation to the intended no-wait behavior rather than passing a negative duration.
- Use consistent units and a suitable integer range. Use MQWI_UNLIMITED explicitly when indefinite waiting is the approved behavior.
- Choose bounded waits when the worker needs periodic cancellation or health checks. Test shutdown and no-message behavior alongside the ordinary receive path.


### What it looks like


```text
Illustrative diagnostic notes; not an IBM message template.
Deadline calculation: remaining milliseconds = -200
MQGMO.WaitInterval = -200
MQGET Reason=2090
Use a valid nonnegative interval or MQWI_UNLIMITED.
```


### IBM documentation

[IBM MQ 9.4: 2090 MQRC_WAIT_INTERVAL_ERROR](https://www.ibm.com/docs/en/ibm-mq/9.4.x?topic=codes-2090-082a-rc2090-mqrc-wait-interval-error). 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 2046 MQRC_OPTIONS_ERROR Read →](https://wndsoftware.com/mainframe-errors/mqrc-2046)
[MQRC 2033 MQRC_NO_MSG_AVAILABLE Read →](https://wndsoftware.com/mainframe-errors/mqrc-2033)
[MQRC 2161 MQRC_Q_MGR_QUIESCING Read →](https://wndsoftware.com/mainframe-errors/mqrc-2161)

### Questions


#### Is WaitInterval measured in seconds?

The MQGMO field uses milliseconds. Check conversions at the application boundary.


#### Can I use any negative value for unlimited waiting?

No. Use the documented MQWI_UNLIMITED constant. Other negative durations are invalid.

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

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