apache/rocketmq · error · AuthorizationException

lite subscription is null.

Error message

lite subscription is null.

What it means

Error "lite subscription is null." thrown in apache/rocketmq.

Source

Thrown at auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java:448

                            String unlockTopic = requireResource(messageQueue.getTopic(), "topic");
                            if (NamespaceUtil.isRetryTopic(unlockTopic)) {
                                continue;
                            }
                            topic = Resource.ofTopic(unlockTopic);
                            result.add(DefaultAuthorizationContext.of(subject, topic, Action.SUB, sourceIp));
                        }
                    }
                    break;
                case RequestCode.LITE_SUBSCRIPTION_CTL:
                    LiteSubscriptionCtlRequestBody liteSubscriptionBody = decodeRequiredBody(
                        command, LiteSubscriptionCtlRequestBody.class, "lite subscription");
                    if (CollectionUtils.isEmpty(liteSubscriptionBody.getSubscriptionSet())) {
                        throw new AuthorizationException("lite subscription is empty.");
                    }
                    Set<String> liteSubscriptionResources = new LinkedHashSet<>();
                    for (LiteSubscriptionDTO subscription : liteSubscriptionBody.getSubscriptionSet()) {
                        if (subscription == null) {
                            throw new AuthorizationException("lite subscription is null.");
                        }
                        addUniqueContext(result, liteSubscriptionResources, subject,
                            Resource.ofGroup(requireResource(subscription.getGroup(), "consumer group")),
                            Action.SUB, sourceIp);
                        addUniqueContext(result, liteSubscriptionResources, subject,
                            Resource.ofTopic(requireResource(subscription.getTopic(), "topic")),
                            Action.SUB, sourceIp);
                    }
                    break;
                case RequestCode.UPDATE_BROKER_CONFIG:
                    result.add(DefaultAuthorizationContext.of(subject,
                        Resource.ofCluster(authConfig.getClusterName()), Action.UPDATE, sourceIp));
                    break;
                case RequestCode.UPDATE_AND_CREATE_TOPIC_LIST:
                    CreateTopicListRequestBody topicListBody = decodeRequiredBody(
                        command, CreateTopicListRequestBody.class, "topic list");
                    if (CollectionUtils.isEmpty(topicListBody.getTopicConfigList())) {
                        throw new AuthorizationException("topic list is empty.");

View on GitHub (pinned to 293f588571)

Solutions

  1. Pass a non-null lite subscription object when invoking the lite subscription API.
  2. Check client code paths building the lite subscription request so the field is always set.
  3. Verify serialization compatibility between client and broker versions.

When it happens

Trigger: Occurs when a lite subscription request carries no subscription data.

Common situations: Lite subscription request body is missing or failed to decode, leaving the subscription field null.


AI-assisted analysis of apache/rocketmq@293f588571 (2026-08-14). Data as JSON: /api/errors/6fc0311a313a3a4f. Report an issue: GitHub.