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
- Switch to getOutstandingSchemaVersionsWithPort(), which returns Map<String, Set<String>> with host:port addresses.
- Remove calls from tooling; use nodetool describecluster to inspect schema disagreement instead.
- 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
- Do not call either getOutstandingSchemaVersions* on modern clusters; both are dead stubs.
- Use nodetool describecluster for schema version/disagreement checks.
- Wrap legacy MBean clients in fallbacks to current diagnostics.
- Compile-time: bind to the current StorageServiceMBean interface.
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
- Disabling compaction by setting min_compaction_threshold or
- Unknown endpoint %s
- Not yet initialized, can't load new sstables
- Table count warn threshold should be positive, not {value}
- Keyspace count warn threshold should be positive, not {value
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/f37c600eb4ac6ad9.
Report an issue: GitHub.