{"record":{"id":"a537e2ec4ba8edff","repo":"apache/cassandra","slug":"could-not-create-compression-for-type","errorCode":null,"errorMessage":"Could not create Compression for type ","messagePattern":"Could not create Compression for type ","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/schema/CompressionParams.java","lineNumber":319,"sourceCode":"    public int maxCompressedLength()\n    {\n        return maxCompressedLength;\n    }\n\n    private static Class<? extends ICompressor> parseCompressorClass(String className) throws ConfigurationException\n    {\n        if (className == null || className.isEmpty())\n            return null;\n\n        className = className.contains(\".\") ? className : \"org.apache.cassandra.io.compress.\" + className;\n        try\n        {\n            return FBUtilities.classForNameWithoutInitialization(className, \"compression\", ICompressor.class);\n        }\n        catch (ConfigurationException e)\n        {\n            if (e.getCause() instanceof ClassNotFoundException || e.getCause() instanceof NoClassDefFoundError)\n                throw new ConfigurationException(\"Could not create Compression for type \" + className, e);\n            throw e;\n        }\n    }\n\n    private static ICompressor createCompressor(Class<? extends ICompressor> compressorClass, Map<String, String> compressionOptions) throws ConfigurationException\n    {\n        if (compressorClass == null)\n        {\n            if (!compressionOptions.isEmpty())\n                throw new ConfigurationException(\"Unknown compression options (\" + compressionOptions.keySet() + \") since no compression class found\");\n            return null;\n        }\n\n        return registry.getCompressor(compressorClass, compressionOptions);\n    }\n\n    public static ICompressor createCompressor(ParameterizedClass compression) throws ConfigurationException\n    {","sourceCodeStart":301,"sourceCodeEnd":337,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/schema/CompressionParams.java#L301-L337","documentation":"parseCompressorClass resolves the configured compression class name via the classloader as an ICompressor implementation. If the class cannot be found (ClassNotFoundException/NoClassDefFoundError), it wraps the failure in a ConfigurationException reading 'Could not create Compression for type <name>'.","triggerScenarios":"compression = {'class': 'SomeUnknownCompressor'} in a table schema; loading a schema snapshot that references a compression class not present in this Cassandra build or a missing third-party jar.","commonSituations":"Typos in class names; restoring schemas on a cluster without a custom compressor library installed; referencing removed compressor classes after an upgrade.","solutions":["Use a built-in class name: LZ4Compressor, SnappyCompressor, DeflateCompressor, or ZstdCompressor","Use the fully qualified name for custom compressors and ensure the jar is on the classpath of every node","Check cassandra-env / lib/ for the custom compressor jar if restoring a foreign schema"],"exampleFix":"// before\ncompression = {'class': 'Lz4'}\n// after\ncompression = {'class': 'LZ4Compressor'}","handlingStrategy":"try-catch","validationCode":"try { Class.forName(className); } catch (ClassNotFoundException e) { throw new IllegalArgumentException(\"Unknown compressor class: \" + className); }","typeGuard":null,"tryCatchPattern":"try { compressionParams = CompressionParams.fromMap(opts); } catch (ConfigurationException e) { if (e.getMessage().startsWith(\"Could not create Compression for type\")) { /* fall back to a built-in compressor */ } throw e; }","preventionTips":["Restrict schemas to built-in compressor classes (LZ4, Snappy, Deflate, Zstd)","Ensure custom compressor jars are installed on all nodes before restoring schemas","Verify class names survive upgrades (classes can be renamed/removed)"],"tags":["cassandra","compression","classpath"],"backgroundTag":"class-not-found","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"}