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

  1. Switch endpoint_snitch to GossipingPropertyFileSnitch or PropertyFileSnitch and define datacenter/rack in cassandra-rackdc.properties.
  2. Remove the deprecated class from any tooling/scripts that reference CloudstackSnitch before the major upgrade.
  3. 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

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


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)