{"record":{"id":"47e51ba9bf0e784d","repo":"apache/rocketmq","slug":"messagequeue-is-null","errorCode":null,"errorMessage":"messageQueue is null.","messagePattern":"messageQueue is null\\.","errorType":"exception","errorClass":"AuthorizationException","httpStatus":null,"severity":"error","filePath":"auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java","lineNumber":145,"sourceCode":"            result = newPubContext(metadata, request.getTopic());\n        }\n        if (message instanceof EndTransactionRequest) {\n            EndTransactionRequest request = (EndTransactionRequest) message;\n            result = newPubContext(metadata, request.getTopic());\n        }\n        if (message instanceof HeartbeatRequest) {\n            HeartbeatRequest request = (HeartbeatRequest) message;\n            if (StringUtils.isNotBlank(request.getGroup().getName())) {\n                if (request.getClientType() == ClientType.PRODUCER) {\n                    throw new AuthorizationException(\"group is not allowed for producer heartbeat.\");\n                }\n                result = newGroupSubContexts(metadata, request.getGroup());\n            }\n        }\n        if (message instanceof ReceiveMessageRequest) {\n            ReceiveMessageRequest request = (ReceiveMessageRequest) message;\n            if (!request.hasMessageQueue()) {\n                throw new AuthorizationException(\"messageQueue is null.\");\n            }\n            result = newSubContexts(metadata, request.getGroup(), request.getMessageQueue().getTopic());\n        }\n        if (message instanceof SyncLiteSubscriptionRequest) {\n            SyncLiteSubscriptionRequest request = (SyncLiteSubscriptionRequest) message;\n            result = newSubContexts(metadata, request.getGroup(), request.getTopic());\n        }\n        if (message instanceof AckMessageRequest) {\n            AckMessageRequest request = (AckMessageRequest) message;\n            result = newSubContexts(metadata, request.getGroup(), request.getTopic());\n        }\n        if (message instanceof ForwardMessageToDeadLetterQueueRequest) {\n            ForwardMessageToDeadLetterQueueRequest request = (ForwardMessageToDeadLetterQueueRequest) message;\n            result = newSubContexts(metadata, request.getGroup(), request.getTopic());\n        }\n        if (message instanceof NotifyClientTerminationRequest) {\n            NotifyClientTerminationRequest request = (NotifyClientTerminationRequest) message;\n            if (StringUtils.isNotBlank(request.getGroup().getName())) {","sourceCodeStart":127,"sourceCodeEnd":163,"githubUrl":"https://github.com/apache/rocketmq/blob/293f5885719fc4aa3619446a1900f58ccfcfdd29/auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java#L127-L163","documentation":"Error \"messageQueue is null.\" thrown in apache/rocketmq.","triggerScenarios":"Occurs when building an authorization context for a request whose message queue field is null.","commonSituations":"Pull/pop/ack requests missing the message queue header, or the header failed to parse.","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."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"293f5885719fc4aa3619446a1900f58ccfcfdd29","analyzedAt":"2026-08-14T11:50:13.822Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}