apache/cassandra · error · ConfigurationException
Invalid value for.progress_barrier_default_consistency_level
Error message
Invalid value for.progress_barrier_default_consistency_level %s. Allowed values: %s
What it means
progress_barrier_default_consistency_level must be one of the permitted consistency levels (ALL, EACH_QUORUM, LOCAL_QUORUM, QUORUM, ONE, NODE_LOCAL). DatabaseDescriptor throws this ConfigurationException when the configured default value is not in that set (note the message has a stray period: 'for.progress_barrier_default_consistency_level').
Source
Thrown at src/java/org/apache/cassandra/config/DatabaseDescriptor.java:1262
if (conf.max_space_usable_for_compactions_in_percentage < 0 || conf.max_space_usable_for_compactions_in_percentage > 1)
throw new ConfigurationException("max_space_usable_for_compactions_in_percentage must be between 0 and 1", false);
if (conf.dump_heap_on_uncaught_exception && DatabaseDescriptor.getHeapDumpPath() == null)
throw new ConfigurationException(String.format("Invalid configuration. Heap dump is enabled but cannot create heap dump output path: %s.", conf.heap_dump_path != null ? conf.heap_dump_path : "null"));
conf.sai_options.validate();
List<ConsistencyLevel> progressBarrierCLsArr = Arrays.asList(ALL, EACH_QUORUM, LOCAL_QUORUM, QUORUM, ONE, NODE_LOCAL);
Set<ConsistencyLevel> progressBarrierCls = new HashSet<>(progressBarrierCLsArr);
if (!progressBarrierCls.contains(conf.progress_barrier_min_consistency_level))
{
throw new ConfigurationException(String.format("Invalid value for progress_barrier_min_consistency_level %s. Allowed values: %s",
conf.progress_barrier_min_consistency_level, progressBarrierCLsArr));
}
if (!progressBarrierCls.contains(conf.progress_barrier_default_consistency_level))
{
throw new ConfigurationException(String.format("Invalid value for.progress_barrier_default_consistency_level %s. Allowed values: %s",
conf.progress_barrier_default_consistency_level, progressBarrierCLsArr));
}
if (conf.native_transport_min_backoff_on_queue_overload.toMilliseconds() <= 0)
throw new ConfigurationException(" be positive");
if (conf.native_transport_min_backoff_on_queue_overload.toMilliseconds() >= conf.native_transport_max_backoff_on_queue_overload.toMilliseconds())
throw new ConfigurationException(String.format("native_transport_min_backoff_on_queue_overload should be strictly less than native_transport_max_backoff_on_queue_overload, but %s >= %s",
conf.native_transport_min_backoff_on_queue_overload,
conf.native_transport_max_backoff_on_queue_overload));
if (conf.use_deterministic_table_id)
logger.warn("use_deterministic_table_id is no longer supported and should be removed from cassandra.yaml.");
// run audit logging options through sanitation and validation
if (conf.audit_logging_options != null)
setAuditLoggingOptions(conf.audit_logging_options);
View on GitHub (pinned to 88fd0f6a0e)
Solutions
- Set progress_barrier_default_consistency_level to one of: ALL, EACH_QUORUM, LOCAL_QUORUM, QUORUM, ONE, NODE_LOCAL
- Remove the setting to use the default
Example fix
// before (cassandra.yaml) progress_barrier_default_consistency_level: THREE // after progress_barrier_default_consistency_level: LOCAL_QUORUM
Defensive patterns
Strategy: validation
Validate before calling
java.util.Set<ConsistencyLevel> allowed = java.util.Set.of(ConsistencyLevel.ALL, ConsistencyLevel.EACH_QUORUM, ConsistencyLevel.LOCAL_QUORUM, ConsistencyLevel.QUORUM, ConsistencyLevel.ONE, ConsistencyLevel.NODE_LOCAL); if (!allowed.contains(conf.progress_barrier_default_consistency_level)) throw new IllegalArgumentException("progress_barrier_default_consistency_level must be one of " + allowed); Try / catch
try { DatabaseDescriptor.applySimpleConfig(conf); } catch (ConfigurationException e) { log.error(e.getMessage()); } Prevention
- Only use the six documented CLs for progress barrier settings
- Watch out for the typo'd message text ('for.progress_...') when grepping logs
When it happens
Trigger: applySimpleConfig (via toolInitialization/applyAll) with progress_barrier_default_consistency_level set outside the allowed list (e.g. TWO, THREE, ANY, SERIAL).
Common situations: Typo or unsupported CL chosen as the default progress barrier consistency; assuming all consistency levels are valid.
Understand the failure class
Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.
Related errors
- Invalid value for progress_barrier_min_consistency_level %s.
- Load CIDR groups cache operation not supported by %s
- Unsupported parameter '%s' for %s, supported parameters are
- JAAS login configuration missing for JMX authenticator setup
- repair_session_max_tree_depth should not be < 10, but was ${
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/107390bf90fe892f.
Report an issue: GitHub.