apache/rocketmq · error · AuthorizationException
messageQueue is null.
Error message
messageQueue is null.
What it means
Error "messageQueue is null." thrown in apache/rocketmq.
Source
Thrown at auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java:145
result = newPubContext(metadata, request.getTopic());
}
if (message instanceof EndTransactionRequest) {
EndTransactionRequest request = (EndTransactionRequest) message;
result = newPubContext(metadata, request.getTopic());
}
if (message instanceof HeartbeatRequest) {
HeartbeatRequest request = (HeartbeatRequest) message;
if (StringUtils.isNotBlank(request.getGroup().getName())) {
if (request.getClientType() == ClientType.PRODUCER) {
throw new AuthorizationException("group is not allowed for producer heartbeat.");
}
result = newGroupSubContexts(metadata, request.getGroup());
}
}
if (message instanceof ReceiveMessageRequest) {
ReceiveMessageRequest request = (ReceiveMessageRequest) message;
if (!request.hasMessageQueue()) {
throw new AuthorizationException("messageQueue is null.");
}
result = newSubContexts(metadata, request.getGroup(), request.getMessageQueue().getTopic());
}
if (message instanceof SyncLiteSubscriptionRequest) {
SyncLiteSubscriptionRequest request = (SyncLiteSubscriptionRequest) message;
result = newSubContexts(metadata, request.getGroup(), request.getTopic());
}
if (message instanceof AckMessageRequest) {
AckMessageRequest request = (AckMessageRequest) message;
result = newSubContexts(metadata, request.getGroup(), request.getTopic());
}
if (message instanceof ForwardMessageToDeadLetterQueueRequest) {
ForwardMessageToDeadLetterQueueRequest request = (ForwardMessageToDeadLetterQueueRequest) message;
result = newSubContexts(metadata, request.getGroup(), request.getTopic());
}
if (message instanceof NotifyClientTerminationRequest) {
NotifyClientTerminationRequest request = (NotifyClientTerminationRequest) message;
if (StringUtils.isNotBlank(request.getGroup().getName())) {View on GitHub (pinned to 293f588571)
Solutions
- Ensure the request includes a valid MessageQueue (topic, brokerName, queueId) before sending it to the broker.
- Check client code that constructs ack/peek/pull requests so messageQueue is always populated.
- Verify serialization between client and broker versions does not drop the messageQueue field.
When it happens
Trigger: Occurs when building an authorization context for a request whose message queue field is null.
Common situations: Pull/pop/ack requests missing the message queue header, or the header failed to parse.
AI-assisted analysis of apache/rocketmq@293f588571 (2026-08-14).
Data as JSON: /api/errors/47e51ba9bf0e784d.
Report an issue: GitHub.