apache/cassandra · error · ConfigurationException
Memtable configuration "${configurationKey}" not found.
Error message
Memtable configuration "${configurationKey}" not found. What it means
Thrown from MemtableParams.parseConfiguration when a table (or configuration reference) specifies a memtable configuration key that has no matching entry in the configured memtable_configurations map (and is not the built-in 'default'). Cassandra rejects it with a ConfigurationException because it cannot instantiate the memtable factory for an undefined configuration.
Source
Thrown at src/java/org/apache/cassandra/schema/MemtableParams.java:212
forRemoval.add(inheritingEntry.getKey());
}
}
assert !forRemoval.isEmpty();
for (String toRemove : forRemoval)
inheritingClasses.remove(toRemove);
}
return ImmutableMap.copyOf(configs);
}
private static MemtableParams parseConfiguration(String configurationKey)
{
ParameterizedClass definition = CONFIGURATION_DEFINITIONS.get(configurationKey);
if (definition == null)
throw new ConfigurationException("Memtable configuration \"" + configurationKey + "\" not found.");
return new MemtableParams(getMemtableFactory(definition), configurationKey);
}
private static Memtable.Factory getMemtableFactory(ParameterizedClass options)
{
// Special-case this so that we don't initialize memtable class for tests that need to delay that.
if (options == DEFAULT_CONFIGURATION)
return DEFAULT_MEMTABLE_FACTORY;
String className = options.class_name;
if (className == null || className.isEmpty())
throw new ConfigurationException("The 'class_name' option must be specified.");
className = className.contains(".") ? className : "org.apache.cassandra.db.memtable." + className;
try
{
Memtable.Factory factory;View on GitHub (pinned to 88fd0f6a0e)
Solutions
- Add the missing named entry to memtable_configurations in cassandra.yaml on all nodes and restart.
- Alter the table to use an existing configuration key (or 'default').
- Check exact spelling/case of the key against the memtable_configurations map in the YAML.
Example fix
# before (cassandra.yaml) — table references key 'tiny' which is undefined
memtable_configurations:
small: {class_name: DefaultMemtable}
# after
memtable_configurations:
small: {class_name: DefaultMemtable}
tiny: {inherits: default, class_name: DefaultMemtable} Defensive patterns
Strategy: validation
Validate before calling
-- verify every table's memtable config key exists in the YAML before startup SELECT keyspace_name, table_name FROM system_schema.tables; -- confirm each referenced key is in cassandra.yaml memtable_configurations or equals 'default'
Try / catch
try { defineTable(memtableKey); } catch (ConfigurationException e) { if (e.getMessage().contains("not found")) fallBackToDefaultKey(); else throw e; } Prevention
- Keep memtable_configurations identical on all nodes of the cluster and in config management.
- Before renaming/deleting an entry, check which tables reference it and ALTER them first.
- Use 'default' as the fallback key for tables that don't need a custom memtable.
When it happens
Trigger: A table's schema references a memtable configuration key (table params set via CREATE/ALTER TABLE or the StorageService/system API), but cassandra.yaml's memtable_configurations contains no entry with that name; also triggered at startup when a configured table points at a removed entry.
Common situations: Node deployed with an outdated cassandra.yaml lacking an entry referenced by a table created on another cluster, YAML entry renamed/deleted while tables still reference it, key name typo when applying table options.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- Configuration entry %s can not inherit itself.
- Configuration entry %s inherits non-existing entry %s.
- The 'class_name' option must be specified.
- Memtable class ${className} does not accept any futher param
- Load CIDR groups cache operation not supported by %s
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/63d8b64e59ae7521.
Report an issue: GitHub.