apache/cassandra · warning

Used sytem property variable

Error message

Used sytem property variable {} to override Cassandra configuration but there is no such system property counter-part to override.

What it means

Warning from YamlConfigurationLoader when a cassandra.-prefixed JVM system property does not correspond to any known overridable configuration key (not in OVERRIDABLE_CONFIG_NAMES). The property is ignored for config purposes, so the user's intended override silently does nothing (note the pre-existing 'sytem' typo in the message).

Solutions

  1. Fix the property name to match a valid overridable config key (check the current version's cassandra.yaml / Configuration class).
  2. Move the setting into cassandra.yaml if it is a valid config key but not in the overridable list.
  3. After upgrades, verify renamed/removed settings against the release notes and update startup scripts.
  4. Watch for this warning at startup — it means your override is being ignored entirely.

Example fix

// before
cassandra-env.sh: JVM_OPTS="$JVM_OPTS -Dcassandra.commitlog_sync_periond_ms=1000"
// after
cassandra-env.sh: JVM_OPTS="$JVM_OPTS -Dcassandra.commitlog_sync_period_in_ms=1000"
Defensive patterns

Strategy: validation

Validate before calling

# verify the key exists before using it as a -D override
grep -q "^${key}:" conf/cassandra.yaml || echo "unknown config key: $key"

Prevention

When it happens

Trigger: Passing -Dcassandra.<typo-or-unknown-key>=<value> at startup, e.g. -Dcassandra.commitlog_sync_periond_ms or -Dcassandra.some_renamed_setting after a config key was renamed across versions.

Common situations: Typos in JVM options; following outdated documentation/blogs after a config setting was renamed or removed in an upgrade; copy-pasting options from another Cassandra version; settings that were never overridable via system properties.

Understand the failure class

Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.

Related errors


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

Appendix: source

Thrown at src/java/org/apache/cassandra/config/YamlConfigurationLoader.java:212

            Map<String, Object> overridingProperties = new HashMap<>();
            for (String originalKey : orderedPropertiesMap.keySet())
            {
                if (originalKey.startsWith(SYSTEM_PROPERTY_PREFIX))
                {
                    String value = props.getProperty(originalKey);
                    String configKey = originalKey.replace(SYSTEM_PROPERTY_PREFIX, "");
                    if (OVERRIDABLE_CONFIG_NAMES.contains(configKey))
                    {
                        if (value != null && !overridingProperties.containsKey(configKey))
                        {
                            if (!DatabaseDescriptor.hasLoggedConfig()) // CASSANDRA-9909: Avoid flooding config during initialization
                                logger.warn("Detected JVM property {}={} override for Cassandra configuration '{}'.", originalKey, value, configKey);
                            overridingProperties.put(configKey, getScalarOrJsonTree(value));
                        }
                    }
                    else
                    {
                        logger.warn("Used sytem property variable {} to override Cassandra configuration but there is no such system property counter-part to override.", originalKey);
                    }
                }
            }
            if (!overridingProperties.isEmpty())
                updateFromMap(maybeFlattenNestedProperties(overridingProperties), false, obj);
        }
    }

    private static void maybeAddEnvironmentVariables(Object obj)
    {
        if (CONFIG_ALLOW_ENVIRONMENT_VARIABLES.getBoolean(CASSANDRA_ALLOW_CONFIG_ENVIRONMENT_VARIABLES.getBooleanOrDefault(false)))
        {
            Map<String, String> orderedEnvironmentMap = new TreeMap<>(System.getenv()); // checkstyle: suppress nearby 'blockSystemPropertyUsage'
            Map<String, Object> overridingProperties = new HashMap<>();
            for (Map.Entry<String, String> env : orderedEnvironmentMap.entrySet())
            {
                String originalKey = env.getKey();
                if (env.getKey().startsWith(ENVIRONMENT_VARIABLE_PREFIX))

View on GitHub (pinned to 88fd0f6a0e)