{"record":{"id":"154de086399948d4","repo":"apache/cassandra","slug":"configurationexception-message","errorCode":null,"errorMessage":"<ConfigurationException message>","messagePattern":"<ConfigurationException message>","errorType":"validation","errorClass":"java.lang.IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/db/ColumnFamilyStore.java","lineNumber":479,"sourceCode":"\n    public String getCompressionParametersJson()\n    {\n        return JsonUtils.writeAsJsonString(getCompressionParameters());\n    }\n\n    public void setCompressionParameters(Map<String,String> opts)\n    {\n        try\n        {\n            CompressionParams params = CompressionParams.fromMap(opts);\n            params.validate();\n\n            TableMetadata orig = metadata();\n            metadata.setLocalOverrides(orig.unbuild().compression(params).epoch(orig.epoch).build());\n        }\n        catch (ConfigurationException e)\n        {\n            throw new IllegalArgumentException(e.getMessage());\n        }\n    }\n\n    public void setCompressionParametersJson(String options)\n    {\n        setCompressionParameters(JsonUtils.fromJsonMap(options));\n    }\n\n    @VisibleForTesting\n    public ColumnFamilyStore(Keyspace keyspace,\n                             String columnFamilyName,\n                             Supplier<? extends SSTableId> sstableIdGenerator,\n                             TableMetadata initMetadata,\n                             Directories directories,\n                             boolean loadSSTables,\n                             boolean registerBookeeping)\n    {\n        this(keyspace, columnFamilyName, sstableIdGenerator, initMetadata, directories, loadSSTables, registerBookeeping, true);","sourceCodeStart":461,"sourceCodeEnd":497,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/db/ColumnFamilyStore.java#L461-L497","documentation":"setCompressionParameters applies new compression parameters as a local schema override. If the parameters are invalid, the underlying ConfigurationException (e.g. unknown compressor class or bad chunk length) is converted to an IllegalArgumentException carrying the ConfigurationException's message.","triggerScenarios":"Calling setCompressionParameters (via JMX/nodetool setcompressionparameters or setCompressionParametersJson) with a compressor class that cannot be loaded or configured, or an invalid chunk_length_kb / other option value.","commonSituations":"Typo in compression class name, using a compressor not on the classpath (e.g. Zstd on older versions), chunk length outside the allowed range, wrong JSON types in options map.","solutions":["Fix the compressor class name (use org.apache.cassandra.io.compress.* fully qualified names as needed)","Verify the compressor library is available in this Cassandra version's classpath","Use valid option values (e.g. chunk_length_kb within the allowed range, like 4-64)","Retry setcompressionparameters with corrected options"],"exampleFix":"// before\nnodetool setcompressionparameters ks t '{\"class\":\"LZ4Compressor\",\"chunk_length_kb\":\"4k\"}'\n// after\nnodetool setcompressionparameters ks t '{\"class\":\"org.apache.cassandra.io.compress.LZ4Compressor\",\"chunk_length_kb\":\"16\"}'","handlingStrategy":"try-catch","validationCode":"// verify compressor availability\ntry { Class.forName(\"org.apache.cassandra.io.compress.LZ4Compressor\"); } catch (ClassNotFoundException e) { /* unsupported compressor */ }\nif (chunkLengthKb < 4 || chunkLengthKb > 64) throw new IllegalArgumentException(\"chunk_length_kb out of range\");","typeGuard":null,"tryCatchPattern":"try { cfs.setCompressionParameters(params); } catch (IllegalArgumentException e) { /* message is the underlying ConfigurationException text; correct params and retry */ }","preventionTips":["Use fully qualified compressor class names and only compressors bundled with your Cassandra version","Keep chunk_length_kb within the supported range (4-64)","Prefer ALTER TABLE ... WITH compression for schema-managed changes"],"tags":["cassandra","compression","jmx","configuration"],"backgroundTag":"invalid-config-value","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}