{"record":{"id":"ef639d98e8484501","repo":"apache/rocketmq","slug":"authorization-context-is-empty","errorCode":null,"errorMessage":"authorization context is empty.","messagePattern":"authorization context is empty\\.","errorType":"exception","errorClass":"AuthorizationException","httpStatus":null,"severity":"error","filePath":"auth/src/main/java/org/apache/rocketmq/auth/authorization/AuthorizationEvaluator.java","lineNumber":51,"sourceCode":"\n    public AuthorizationEvaluator(AuthConfig authConfig) {\n        this(authConfig, null);\n    }\n\n    public AuthorizationEvaluator(AuthConfig authConfig, Supplier<?> metadataService) {\n        this.authorizationStrategy = AuthorizationFactory.getStrategy(authConfig, metadataService);\n    }\n\n    /**\n     * Visible for testing: allows injecting a stub strategy.\n     */\n    AuthorizationEvaluator(AuthorizationStrategy authorizationStrategy) {\n        this.authorizationStrategy = authorizationStrategy;\n    }\n\n    public void evaluate(List<? extends AuthorizationContext> contexts) {\n        if (CollectionUtils.isEmpty(contexts)) {\n            throw new AuthorizationException(\"authorization context is empty.\");\n        }\n        contexts.forEach(this.authorizationStrategy::evaluate);\n    }\n\n    public void evaluate(RemotingCommand request, List<? extends AuthorizationContext> contexts) {\n        if (CollectionUtils.isNotEmpty(contexts)) {\n            contexts.forEach(this.authorizationStrategy::evaluate);\n            return;\n        }\n        if (!AuthorizationCompatibility.matches(request)) {\n            throw new AuthorizationException(\"authorization context is empty.\");\n        }\n    }\n\n    public void evaluate(GeneratedMessageV3 request, List<? extends AuthorizationContext> contexts) {\n        if (CollectionUtils.isNotEmpty(contexts)) {\n            contexts.forEach(this.authorizationStrategy::evaluate);\n            return;","sourceCodeStart":33,"sourceCodeEnd":69,"githubUrl":"https://github.com/apache/rocketmq/blob/293f5885719fc4aa3619446a1900f58ccfcfdd29/auth/src/main/java/org/apache/rocketmq/auth/authorization/AuthorizationEvaluator.java#L33-L69","documentation":"Error \"authorization context is empty.\" thrown in apache/rocketmq.","triggerScenarios":"Occurs when the authorization evaluator is invoked with an empty or missing authorization context.","commonSituations":"Authorization context builder produced no context because required request fields were absent or a preceding build step failed.","solutions":["Ensure the request carries the required authorization metadata (topic/group, actions) so the AuthorizationContextBuilder can build a non-empty context.","Verify the request type is one that produces an authorization context; unsupported request types yield empty contexts.","Check that the client populates all required headers/fields before sending the request."],"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"}