apache/cassandra · error · ConfigurationException

Cannot use keyspace inheriting fast path strategy with keysp

Error message

Cannot use keyspace inheriting fast path strategy with keyspaces

What it means

The 'INHERIT_KEYSPACE' fast-path replication strategy kind is only meaningful inside a user-defined type context, not as a keyspace-level replication strategy. KeyspaceAttributes.validate() rejects attempts to set it on a keyspace with ConfigurationException.

Source

Thrown at src/java/org/apache/cassandra/cql3/statements/schema/KeyspaceAttributes.java:61

        ImmutableSet.Builder<String> validBuilder = ImmutableSet.builder();
        for (Option option : Option.values())
            validBuilder.add(option.toString());
        validKeywords = validBuilder.build();
        obsoleteKeywords = ImmutableSet.of();
        requiredKeywords = ImmutableSet.of(Option.REPLICATION.toString());
    }

    public void validate()
    {
        validate(validKeywords, obsoleteKeywords);

        Map<String, String> replicationOptions = getAllReplicationOptions();
        if (!replicationOptions.isEmpty() && !replicationOptions.containsKey(ReplicationParams.CLASS))
            throw new ConfigurationException("Missing replication strategy class");

        FastPathStrategy strategy = getFastPathStrategy();
        if (strategy != null && strategy.kind() == FastPathStrategy.Kind.INHERIT_KEYSPACE)
            throw new ConfigurationException("Cannot use keyspace inheriting fast path strategy with keyspaces");
    }
    
    public static Set<String> allKeywords()
    {
        return Sets.union(validKeywords, obsoleteKeywords);
    }

    public static Set<String> requiredKeywords()
    {
        return requiredKeywords;
    }

    public String getReplicationStrategyClass()
    {
        return getAllReplicationOptions().get(ReplicationParams.CLASS);
    }

    private Map<String, String> getAllReplicationOptions()

View on GitHub (pinned to 88fd0f6a0e)

Solutions

  1. Use a concrete strategy (SimpleStrategy/NetworkTopologyStrategy) for the keyspace
  2. Remove the fast path strategy option from the CREATE/ALTER KEYSPACE statement

Example fix

// before
CREATE KEYSPACE ks WITH replication = {'class': 'FastPathStrategy', 'kind': 'INHERIT_KEYSPACE'};
// after
CREATE KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': 3};
Defensive patterns

Strategy: validation

Validate before calling

if (replication['class'] === 'FastPathStrategy' && replication.kind === 'INHERIT_KEYSPACE') {
  throw new Error('INHERIT_KEYSPACE strategy kind is not valid for keyspaces');
}

Prevention

When it happens

Trigger: CREATE/ALTER KEYSPACE with a fast path strategy option whose kind resolves to INHERIT_KEYSPACE (getFastPathStrategy() returns that kind).

Common situations: Copying strategy definitions from vector/type schema into keyspace DDL; misconfigured cqlsh scripts or tooling emitting the inherit-keyspace kind at keyspace level.

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


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