apache/cassandra · error · RuntimeException

Deprecated

Error message

Deprecated

What it means

getOutstandingSchemaVersions() (Map keyed by schema UUID to InetAddress sets) was deprecated in 4.0 (CASSANDRA-13983/CEP-21, host+port schema coordination) and is now permanently removed: the method unconditionally throws RuntimeException("Deprecated"). It exists only as a stub for the StorageServiceMBean interface.

Source

Thrown at src/java/org/apache/cassandra/service/StorageService.java:5271

    }

    @Override
    public boolean isFullQueryLogEnabled()
    {
        return FullQueryLogger.instance.isEnabled();
    }

    @Override
    public CompositeData getFullQueryLoggerOptions()
    {
        return FullQueryLoggerOptionsCompositeData.toCompositeData(FullQueryLogger.instance.getFullQueryLoggerOptions());
    }

    @Override
    @Deprecated(since = "4.0")
    public Map<String, Set<InetAddress>> getOutstandingSchemaVersions()
    {
        throw new RuntimeException("Deprecated");
    }

    @Override
    @Deprecated(since = "CEP-21")
    public Map<String, Set<String>> getOutstandingSchemaVersionsWithPort()
    {
        throw new RuntimeException("Deprecated");
    }

    public boolean autoOptimiseIncRepairStreams()
    {
        return DatabaseDescriptor.autoOptimiseIncRepairStreams();
    }

    public void setAutoOptimiseIncRepairStreams(boolean enabled)
    {
        DatabaseDescriptor.setAutoOptimiseIncRepairStreams(enabled);
    }

View on GitHub (pinned to 88fd0f6a0e)

Solutions

  1. Switch to getOutstandingSchemaVersionsWithPort(), which returns Map<String, Set<String>> with host:port addresses.
  2. Remove calls from tooling; use nodetool describecluster to inspect schema disagreement instead.
  3. Update MBean clients to the current StorageServiceMBean interface.

Example fix

// before
Map<String, Set<InetAddress>> v = ss.getOutstandingSchemaVersions(); // throws
// after
Map<String, Set<String>> v = ss.getOutstandingSchemaVersionsWithPort();
Defensive patterns

Strategy: fallback

Try / catch

try { return ss.getOutstandingSchemaVersions(); } catch (RuntimeException e) { return schemaVersionsViaDescribecluster(); }

Prevention

When it happens

Trigger: Any call to StorageService.getOutstandingSchemaVersions() — via JMX, nodetool, or client code built against the 4.0-era MBean.

Common situations: Legacy monitoring/automation code compiled or scripted against pre-CEP-21 MBean signatures calling into a 4.1+ cluster; JMX consoles invoking the deprecated attribute.

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/f37c600eb4ac6ad9. Report an issue: GitHub.