{"record":{"id":"2dd29a17f958d31e","repo":"apache/cassandra","slug":"diskaccessmode-s-is-not-supported","errorCode":null,"errorMessage":"DiskAccessMode '%s' is not supported","messagePattern":"DiskAccessMode '(.+?)' is not supported","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"critical","filePath":"src/java/org/apache/cassandra/config/DatabaseDescriptor.java","lineNumber":696,"sourceCode":"        }\n\n        if (conf.accord.durability_flush_interval == null)\n            conf.accord.durability_flush_interval = conf.accord.shard_durability_cycle;\n\n        /* evaluate the DiskAccessMode Config directive, which also affects indexAccessMode selection */\n        if (conf.disk_access_mode == DiskAccessMode.auto || conf.disk_access_mode == DiskAccessMode.mmap_index_only)\n        {\n            conf.disk_access_mode = DiskAccessMode.standard;\n            indexAccessMode = DiskAccessMode.mmap;\n        }\n        else if (conf.disk_access_mode == DiskAccessMode.legacy)\n        {\n            conf.disk_access_mode = hasLargeAddressSpace() ? DiskAccessMode.mmap : DiskAccessMode.standard;\n            indexAccessMode = conf.disk_access_mode;\n        }\n        else if (conf.disk_access_mode == DiskAccessMode.direct)\n        {\n            throw new ConfigurationException(String.format(\"DiskAccessMode '%s' is not supported\", DiskAccessMode.direct));\n        }\n        else\n        {\n            indexAccessMode = conf.disk_access_mode;\n        }\n        logger.info(\"DiskAccessMode is {}, indexAccessMode is {}\", conf.disk_access_mode, indexAccessMode);\n\n        if (DiskAccessMode.auto == conf.compaction_read_disk_access_mode)\n        {\n            compactionReadDiskAccessMode = conf.disk_access_mode;\n        }\n        else if (DiskAccessMode.direct == conf.compaction_read_disk_access_mode)\n        {\n            compactionReadDiskAccessMode = DiskAccessMode.direct;\n        }\n        else\n        {\n            throw new IllegalArgumentException(\"Unsupported disk access mode for compaction_read_disk_access_mode \" +","sourceCodeStart":678,"sourceCodeEnd":714,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L678-L714","documentation":"DiskAccessMode.direct (io_uring-style direct I/O access) is not a supported value for disk_access_mode in this Cassandra build. applySimpleConfig rejects it outright (only auto/mmap/standard are accepted), so a node configured with direct fails at startup with this ConfigurationException.","triggerScenarios":"Setting `disk_access_mode: direct` in cassandra.yaml (or via Config programmatically) before DatabaseDescriptor.toolInitialization/applyAll.","commonSituations":"Operators copying disk_access_mode: direct from newer experimental docs or other storage engines; trying to enable direct I/O on old ext4 setups; config templates shared across Cassandra versions where direct is accepted upstream but not in this build.","solutions":["Set `disk_access_mode: auto` and let Cassandra pick mmap vs standard based on address space.","Use `disk_access_mode: mmap` on 64-bit hosts with sufficient address space, or `standard` otherwise.","Upgrade to a Cassandra version that actually supports direct if direct I/O is a hard requirement."],"exampleFix":"// before (cassandra.yaml)\ndisk_access_mode: direct\n// after (cassandra.yaml)\ndisk_access_mode: auto","handlingStrategy":"validation","validationCode":"// Java, before toolInitialization()\nString mode = System.getProperty(\"cassandra.config\"); // or parse your yaml\nSet<String> allowed = Set.of(\"auto\", \"mmap\", \"standard\");\n// if parsed disk_access_mode not in allowed -> fail fast with a clear message","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only use values documented for your exact Cassandra version; `direct` is rejected in this build.","Prefer `auto` unless you have a measured reason to pin mmap vs standard.","Grep shared config templates for disk_access_mode when onboarding a new cluster."],"tags":["config","disk-io","startup","unsupported-value"],"backgroundTag":"unsupported-config-value","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"}