{"record":{"id":"6cac9f22132e6f62","repo":"apache/rocketmq","slug":"subscription-is-null","errorCode":null,"errorMessage":"subscription is null.","messagePattern":"subscription is null\\.","errorType":"exception","errorClass":"AuthorizationException","httpStatus":null,"severity":"error","filePath":"auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java","lineNumber":327,"sourceCode":"                    result.add(DefaultAuthorizationContext.of(subject,\n                        Resource.ofGroup(requireResource(assignmentBody.getConsumerGroup(), \"consumer group\")),\n                        Action.SUB, sourceIp));\n                    break;\n                case RequestCode.SET_MESSAGE_REQUEST_MODE:\n                    SetMessageRequestModeRequestBody modeBody = decodeRequiredBody(\n                        command, SetMessageRequestModeRequestBody.class, \"message request mode\");\n                    result.add(DefaultAuthorizationContext.of(subject,\n                        Resource.ofTopic(requireResource(modeBody.getTopic(), \"topic\")),\n                        Action.SUB, sourceIp));\n                    result.add(DefaultAuthorizationContext.of(subject,\n                        Resource.ofGroup(requireResource(modeBody.getConsumerGroup(), \"consumer group\")),\n                        Action.UPDATE, sourceIp));\n                    break;\n                case RequestCode.CHECK_CLIENT_CONFIG:\n                    CheckClientRequestBody checkClientBody = decodeRequiredBody(\n                        command, CheckClientRequestBody.class, \"client config\");\n                    if (checkClientBody.getSubscriptionData() == null) {\n                        throw new AuthorizationException(\"subscription is null.\");\n                    }\n                    result.add(DefaultAuthorizationContext.of(subject,\n                        Resource.ofTopic(requireResource(\n                            checkClientBody.getSubscriptionData().getTopic(), \"topic\")),\n                        Action.SUB, sourceIp));\n                    result.add(DefaultAuthorizationContext.of(subject,\n                        Resource.ofGroup(requireResource(checkClientBody.getGroup(), \"consumer group\")),\n                        Action.SUB, sourceIp));\n                    break;\n                case RequestCode.QUERY_MESSAGE:\n                    topic = Resource.ofTopic(requireResource(fields.get(TOPIC), \"topic\"));\n                    result.add(DefaultAuthorizationContext.of(subject, topic, Arrays.asList(Action.SUB, Action.GET), sourceIp));\n                    break;\n                case RequestCode.HEART_BEAT:\n                    HeartbeatData heartbeatData = decodeRequiredBody(command, HeartbeatData.class, \"heartbeat\");\n                    for (ConsumerData data : heartbeatData.getConsumerDataSet()) {\n                        if (data == null) {\n                            throw new AuthorizationException(\"consumer data is null.\");","sourceCodeStart":309,"sourceCodeEnd":345,"githubUrl":"https://github.com/apache/rocketmq/blob/293f5885719fc4aa3619446a1900f58ccfcfdd29/auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java#L309-L345","documentation":"Error \"subscription is null.\" thrown in apache/rocketmq.","triggerScenarios":"Occurs when building an authorization context for a request whose subscription data is null.","commonSituations":"A consumer request arrives without subscription data, or the subscription failed to decode.","solutions":["Provide a valid SubscriptionData (topic, expression) in the request before sending it.","Verify the consumer's subscription is registered and included in the request payload.","Check that client and broker versions serialize SubscriptionData compatibly."],"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-15T17:31:12.345Z"}