# MQRC 2026: Message descriptor error

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

### MQRC 2026: Message descriptor error

MQRC 2026 means IBM MQ received an invalid message descriptor. Check MQMD initialization, structure version, writable storage and language bindings.


#### Other names for this code

Also written as `RC2026`, `reason code 2026`, `MQ error 2026`, `MQRC_MD_ERROR`, `07EA`, `0x07EA`.


### What it means

The MQMD describes message properties such as format, identifiers and persistence. Reason 2026 means the descriptor itself cannot be used safely. IBM identifies invalid structure identification, unsupported versions and invalid or unwritable storage as possible causes.

This is different from a valid descriptor containing one bad property value. Establish whether the problem is the structure layout before diagnosing the business message payload.


#### A troubleshooting example

A wrapper accepts a serialized byte buffer where the native API expects a writable MQMD structure. The message text looks correct, but the call returns 2026 before useful message processing occurs. Replace the wrapper declaration with the supported descriptor type and initialize it using the supplied defaults. Test both put and get paths: get updates fields that a put-only test may not exercise. Retain a small test that verifies identifiers and format after a round trip.


### Common causes

- A native-language program uses an uninitialized MQMD or overwrites part of its storage.
- A language binding or foreign-function declaration passes the wrong layout, size or pointer.
- The program sets a structure version that does not match the available fields or installed runtime.


### How to find the problem

- Capture the MQMD structure identification and version immediately before the failing call, using the debugger or a controlled trace.
- Compare the declaration with the headers or copybook shipped with the deployed MQ client. Confirm architecture and calling convention.
- Check that MQ can write the returned descriptor fields. A constant buffer or expired stack address is not suitable output storage.
- Run a minimal test using the vendor-supplied default initializer. Add application field assignments one at a time to isolate corruption.


### How to fix it

- Initialize the descriptor with the supplied MQMD defaults for the programming language, then set only the fields the application needs.
- Repair pointer lifetime, buffer ownership or binding declarations. Keep the structure writable throughout the call and subsequent result handling.
- Use compatible headers, copybooks and runtime libraries. Add a test around the exact native interface instead of suppressing the returned reason code.


### What it looks like


```text
Illustrative diagnostic notes; not an IBM message template.
Before MQPUT:
  MQMD.StrucId = inspect actual value
  MQMD.Version = inspect supported layout
Reason=2026: check descriptor storage, not only payload.
```


### IBM documentation

[IBM MQ 9.4: 2026 MQRC_MD_ERROR](https://www.ibm.com/docs/en/ibm-mq/9.4.x?topic=codes-2026-07ea-rc2026-mqrc-md-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 2047 MQRC_PERSISTENCE_ERROR Read →](https://wndsoftware.com/mainframe-errors/mqrc-2047)
[MQRC 2027 MQRC_MISSING_REPLY_TO_Q Read →](https://wndsoftware.com/mainframe-errors/mqrc-2027)
[MQRC 2019 MQRC_HOBJ_ERROR Read →](https://wndsoftware.com/mainframe-errors/mqrc-2019)

### Questions


#### Does 2026 mean my XML or JSON is invalid?

The reason identifies the MQ descriptor. Payload validation is a separate concern; inspect MQMD and the API binding first.


#### Can I zero every MQMD field?

Use the supplied initializer instead. Some fields require defined defaults and structure identifiers, rather than an all-zero byte area.

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

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