{"record":{"id":"27c5f254760eb789","repo":"apache/cassandra","slug":"load-cidr-groups-cache-operation-not-supported-by","errorCode":null,"errorMessage":"Load CIDR groups cache operation not supported by %s","messagePattern":"Load CIDR groups cache operation not supported by (.+?)","errorType":"exception","errorClass":"InvalidRequestException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/auth/AllowAllCIDRAuthorizer.java","lineNumber":58,"sourceCode":"        // Caches not created when CIDR authorization is disabled\n    }\n\n    @Override\n    public boolean requireAuthorization()\n    {\n        return false;\n    }\n\n    @Override\n    public boolean invalidateCidrPermissionsCache(String roleName)\n    {\n        throw new InvalidRequestException(\"Invalidate CIDR permissions cache operation not supported by \" + getClass().getSimpleName());\n    }\n\n    @Override\n    public void loadCidrGroupsCache()\n    {\n        throw new InvalidRequestException(\"Load CIDR groups cache operation not supported by \" + getClass().getSimpleName());\n    }\n\n    @Override\n    public Set<String> lookupCidrGroupsForIp(InetAddress ip)\n    {\n        throw new InvalidRequestException(\"'Get CIDR groups for IP' operation not supported by \" + getClass().getSimpleName());\n    }\n\n    @Override\n    public boolean hasAccessFromIp(RoleResource role, InetAddress ipAddress)\n    {\n        // Allow all accesses\n        return true;\n    }\n}\n","sourceCodeStart":40,"sourceCodeEnd":74,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/auth/AllowAllCIDRAuthorizer.java#L40-L74","documentation":"Thrown by CreateViewStatement.validate when materialized views are disabled in the node configuration. Cassandra can be configured with materialized_views_enabled: false; in recent versions this is the default because MVs are considered experimental and operationally risky, so any CREATE MATERIALIZED VIEW is rejected with InvalidRequestException before further validation.","triggerScenarios":"Executing CREATE MATERIALIZED VIEW against a cluster whose cassandra.yaml does not set materialized_views_enabled: true (the default in Cassandra 4.0+).","commonSituations":"Upgrading from Cassandra 3.x where MVs were enabled by default to 4.x+ where they are disabled; fresh installs where the operator never enabled the experimental feature; scripts copied from older documentation.","solutions":["Set materialized_views_enabled: true in cassandra.yaml on every node and restart the cluster (rolling restart).","Prefer denormalized tables maintained by the application or CDC over materialized views.","If on 4.x+, evaluate the documented MV limitations/experimental status before enabling."],"exampleFix":"// before (cassandra.yaml)\n# materialized_views_enabled not set (defaults false)\n// after (cassandra.yaml)\nmaterialized_views_enabled: true","handlingStrategy":"fallback","validationCode":"// config check (node-side)\nboolean mvEnabled = DatabaseDescriptor.getMaterializedViewsEnabled(); // must be true","typeGuard":null,"tryCatchPattern":"try {\n    session.execute(createMvStmt);\n} catch (InvalidQueryException e) {\n    if (e.getMessage().contains(\"Materialized views are disabled\")) {\n        throw new ConfigurationException(\"Enable materialized_views_enabled in cassandra.yaml on all nodes\");\n    }\n    throw e;\n}","preventionTips":["Set materialized_views_enabled: true on every node before deploying MV DDL (default is disabled in 4.x+).","Prefer application-maintained denormalized tables or CDC pipelines over MVs.","Pin cassandra.yaml configuration in version control and validate it at deploy time."],"tags":["cassandra","cql","materialized-view","configuration","feature-flag"],"backgroundTag":"feature-not-enabled","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}