apache/cassandra · warning

use_deterministic_table_id is no longer supported and should

Error message

use_deterministic_table_id is no longer supported and should be removed from cassandra.yaml.

What it means

A warning logged when use_deterministic_table_id is present/enabled in cassandra.yaml. The option is no longer supported (its behavior was made default/removed in later Cassandra versions); Cassandra tells the operator to remove the key. Startup proceeds; the setting has no effect.

Source

Thrown at src/java/org/apache/cassandra/config/DatabaseDescriptor.java:1275

                                                           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);

        try
        {
            // Run through the validation by setting current values back to their setters, so we are sure that their values are valid.
            // We are catching IllegalArgumentException and translating it to ConfigurationException to comply with
            // rest of the logic in this method. These setters are also called in GCInspectorMXBean were IllegalArgumentException
            // is thrown when arguments are invalid instead ConfigurationException, on purpose.
            DatabaseDescriptor.setGCLogThreshold((int) DatabaseDescriptor.getGCLogThreshold());
            DatabaseDescriptor.setGCWarnThreshold((int) DatabaseDescriptor.getGCWarnThreshold());
            DatabaseDescriptor.setGCConcurrentPhaseLogThreshold(DatabaseDescriptor.getGCConcurrentPhaseLogThreshold());
            DatabaseDescriptor.setGCConcurrentPhaseWarnThreshold(DatabaseDescriptor.getGCConcurrentPhaseWarnThreshold());
        }
        catch (IllegalArgumentException ex)
        {

View on GitHub (pinned to 88fd0f6a0e)

Solutions

  1. Remove the use_deterministic_table_id line from cassandra.yaml and restart.

Example fix

// cassandra.yaml before
use_deterministic_table_id: true
// after
# use_deterministic_table_id removed - no longer supported
Defensive patterns

Strategy: validation

Validate before calling

if (yamlConfig.containsKey("use_deterministic_table_id")) {
    throw new IllegalStateException("use_deterministic_table_id is no longer supported; remove it from cassandra.yaml");
}

Prevention

When it happens

Trigger: Starting a node with use_deterministic_table_id: true (or the key present and true) in cassandra.yaml; applySimpleConfig logs the warning during applyAll/toolInitialization.

Common situations: Upgraded configs retaining the flag from older Cassandra branches (it was used historically for deterministic table UUID generation); config templates shared between clusters on different versions.

Understand the failure class

Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.

Related errors


AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10). Data as JSON: /api/errors/297d5f295b42c914. Report an issue: GitHub.