apache/cassandra · warning
is deprecated and not actively maintained. It will be…
Error message
{} is deprecated and not actively maintained. It will be removed in the next major version of Cassandra. What it means
Instantiating CloudstackSnitch logs this deprecation warning: the Cloudstack snitch is not actively maintained and will be removed in the next major version. The snitch still functions (it resolves DC/rack from the Cloudstack metadata service), but Cassandra wants operators to migrate.
Solutions
- Switch endpoint_snitch to GossipingPropertyFileSnitch or PropertyFileSnitch and define datacenter/rack in cassandra-rackdc.properties.
- Remove the deprecated class from any tooling/scripts that reference CloudstackSnitch before the major upgrade.
- Restart nodes one DC at a time after changing the snitch and verify ring ownership with nodetool.
Example fix
// before IEndpointSnitch snitch = new CloudstackSnitch(new SnitchProperties(new Properties())); // after IEndpointSnitch snitch = new GossipingPropertyFileSnitch(); // dc/rack from cassandra-rackdc.properties
Defensive patterns
Strategy: validation
Validate before calling
// guard before constructing
private static IEndpointSnitch safeSnitch() {
String configured = System.getProperty("cassandra.endpoint_snitch", "");
if (configured.contains("Cloudstack"))
logger.warn("CloudstackSnitch is deprecated; migrating to GossipingPropertyFileSnitch");
return new GossipingPropertyFileSnitch();
} Prevention
- Replace CloudstackSnitch references in config and code before the next major release.
- Keep dc/rack definitions in cassandra-rackdc.properties rather than cloud metadata lookups.
- Grep deployments regularly for deprecated class names.
When it happens
Trigger: new CloudstackSnitch() or new CloudstackSnitch(SnitchProperties) — typically when cassandra.yaml sets endpoint_snitch: CloudstackSnitch and the class is constructed at startup.
Common situations: Long-running Cloudstack deployments whose cassandra.yaml was never updated; upgrade preflight where operators ignore startup warnings.
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
- is deprecated and not actively maintained. It will be…
- Config contains both old and new keys for the same…
- Configuration must specify either node_proximity and…
- DC or rack not found in snitch properties, check your…
- Initial location provider rejected registration location…
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/52d26e05c028c27c.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/locator/CloudstackSnitch.java:43
* {@code country-location-availability zone} and uses the country/location
* tuple as a datacenter and the availability zone as a rack
*
* This snitch is deprecated, and it is eligible for the removal in the next major release of Cassandra.
*
* @deprecated See CASSANDRA-18438
*/
@Deprecated(since = "5.0")
public class CloudstackSnitch extends AbstractCloudMetadataServiceSnitch
{
public CloudstackSnitch() throws IOException
{
this(new SnitchProperties(new Properties()));
}
public CloudstackSnitch(SnitchProperties snitchProperties) throws IOException
{
super( new CloudstackLocationProvider(snitchProperties));
logger.warn("{} is deprecated and not actively maintained. It will be removed in the next " +
"major version of Cassandra.", CloudstackSnitch.class.getName());
}
public CloudstackSnitch(AbstractCloudMetadataServiceConnector connector) throws IOException
{
super(new CloudstackLocationProvider(connector));
logger.warn("{} is deprecated and not actively maintained. It will be removed in the next " +
"major version of Cassandra.", CloudstackSnitch.class.getName());
}
}
View on GitHub (pinned to 88fd0f6a0e)