apache/cassandra · error · ConfigurationException
Invalid yaml. Please remove properties <missingProperties> f
Error message
Invalid yaml. Please remove properties <missingProperties> from your cassandra.yaml
What it means
PropertiesChecker.check() throws this when missingProperties is non-empty: these are yaml properties that no longer exist in the current Config schema (removed or renamed in this Cassandra version) and must be deleted from cassandra.yaml. It is distinct from nullProperties (352): these keys are recognized as once-valid but now absent from the schema.
Source
Thrown at src/java/org/apache/cassandra/config/YamlConfigurationLoader.java:560
Property prop = getFlatProperty(type, s);
if (prop instanceof MissingProperty)
{
root = null;
break;
}
root = root == null ? prop : Properties.andThen(root, prop);
type = root.getType();
}
return root != null ? root : new MissingProperty(name);
}
public void check() throws ConfigurationException
{
if (!nullProperties.isEmpty())
throw new ConfigurationException("Invalid yaml. Those properties " + nullProperties + " are not valid", false);
if (!missingProperties.isEmpty())
throw new ConfigurationException("Invalid yaml. Please remove properties " + missingProperties + " from your cassandra.yaml", false);
if (!deprecationWarnings.isEmpty())
logger.warn("{} parameters have been deprecated. They have new names and/or value format; For more information, please refer to NEWS.txt", deprecationWarnings);
}
}
public static LoaderOptions getDefaultLoaderOptions()
{
LoaderOptions loaderOptions = new LoaderOptions();
loaderOptions.setCodePointLimit(64 * 1024 * 1024); // 64 MiB
loaderOptions.setWarnOnDuplicateKeys(false);
return loaderOptions;
}
}
View on GitHub (pinned to 88fd0f6a0e)
Solutions
- Remove the listed properties from cassandra.yaml as the message instructs
- Consult NEWS.txt / the Replacement annotations for the new names of the removed keys and substitute them
- Re-baseline your cassandra.yaml against the shipped conf/cassandra.yaml of the target version
- Migrate removed per-key settings to their new locations (e.g. table-level options moved to schema maps)
Example fix
// before (cassandra.yaml, upgraded from 4.0) memtable_allocation_type: heap_buffers index_summary_resize_interval_in_minutes: 60 // after memtable_allocation_type: heap_buffers
Defensive patterns
Strategy: validation
Validate before calling
// before upgrade, scan for removed keys
List<String> removed = List.of("index_summary_resize_interval_in_minutes");
String yaml = java.nio.file.Files.readString(Path.of("cassandra.yaml"));
removed.stream().filter(yaml::contains)
.forEach(k -> System.err.println("Deprecated key to remove/migrate: " + k)); Try / catch
try {
config = loader.loadConfig(url);
} catch (ConfigurationException e) {
if (e.getMessage().contains("Please remove properties"))
log.error("Removed yaml keys must be migrated: " + e.getMessage());
throw e;
} Prevention
- Re-baseline cassandra.yaml against the new version's conf template on every upgrade
- Track NEWS.txt for key removals/renames
- Keep environment-specific overrides free of stale keys
- Test config load on a staging node before cluster-wide rollout
When it happens
Trigger: Loading a cassandra.yaml carried forward from an older Cassandra release that still contains deprecated/removed keys, triggering loadConfig's PropertiesChecker; also any config map supplied to the loader containing removed properties.
Common situations: In-place upgrade 4.0 -> 4.1/5.0 where many settings were renamed or moved into maps; copying cassandra.yaml from an old AMI/pod image; keeping cluster-wide settings that moved to cassandra-topology.properties or new nested structures.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- memtable_cleanup_threshold has been deprecated and should be
- use_deterministic_table_id is no longer supported and should
- {} parameters have been deprecated. They have new names and/
- Invalid data rate: ${value} Accepted units: MiB/s, KiB/s, B/
- Invalid data rate: ${value}. It shouldn't be more than ${max
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/54da7b4aa8cc78dd.
Report an issue: GitHub.