{"record":{"id":"71f2b5c00ecada60","repo":"apache/cassandra","slug":"invalid-cidr-group-s-s-available-cidr-groups-a","errorCode":null,"errorMessage":"Invalid CIDR group(s): %s. Available CIDR Groups are: %s","messagePattern":"Invalid CIDR group\\(s\\): (.+?)\\. Available CIDR Groups are: (.+?)","errorType":"exception","errorClass":"InvalidRequestException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/auth/CIDRPermissions.java","lineNumber":125,"sourceCode":"            return subset.hashCode();\n        }\n\n        public String toString()\n        {\n            StringJoiner joiner = new StringJoiner(\", \");\n            subset.forEach(joiner::add);\n            return joiner.toString();\n        }\n\n        public void validate()\n        {\n            Set<String> availableCidrGroups = DatabaseDescriptor.getCIDRAuthorizer()\n                                                                .getCidrGroupsMappingManager()\n                                                                .getAvailableCidrGroups();\n            Set<String> unknownCidrGroups = Sets.difference(subset, availableCidrGroups);\n            if (!unknownCidrGroups.isEmpty())\n            {\n                throw new InvalidRequestException(\"Invalid CIDR group(s): \" + subset + \". Available CIDR Groups are: \"\n                                                  + availableCidrGroups);\n            }\n        }\n    }\n\n    private static final CIDRPermissions ALL = new CIDRPermissions()\n    {\n        public boolean canAccessFrom(Set<String> cidrGroup)\n        {\n            return true;\n        }\n\n        public boolean restrictsAccess()\n        {\n            return false;\n        }\n\n        public Set<String> allowedCIDRGroups()","sourceCodeStart":107,"sourceCodeEnd":143,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/auth/CIDRPermissions.java#L107-L143","documentation":"Thrown by CIDRPermissions.validate when a role management statement references CIDR group names that are not registered with the CIDR authorizer's mapping manager. The message lists the offending groups and the set of groups that actually exist, so the mismatch is between what the statement names and what getAvailableCidrGroups() returns.","triggerScenarios":"Thrown at src/java/org/apache/cassandra/auth/CIDRPermissions.java:125 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Register the missing CIDR groups with the CIDR authorizer before referencing them in role statements","Remove or correct misspelled CIDR group names in the role's cidrs option","Re-list available groups (the message's second placeholder) and reissue the statement using only those names"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}