apache/cassandra · warning

Connection with unset driver id was detected.

Error message

Connection with unset driver id was detected.

What it means

ClientDriverVersionGuardrail.guard emits this warning when a client connects without setting a driver id (driverName/driverVersion unset) and a guardrail warning configuration covers the 'unset' case. Cassandra tracks driver metadata from the connection's OPTIONS; without it the server cannot evaluate driver version policies for that client.

Solutions

  1. Upgrade or configure the client driver to send its identity (most DataStax/java drivers do by default); ensure driver name and version are populated in connection options.
  2. If the client intentionally reports nothing, either upgrade it or acknowledge the warning as expected.
  3. Adjust the guardrail config (cassandra.yaml / ALTER GUARDRAILS) if warning on unset ids is too noisy for your environment.
  4. Identify the offending client via ClientState / nodetool clientlist and map it to its connection source.
Defensive patterns

Strategy: validation

Validate before calling

// client-side: ensure driver identity is sent
// java driver: identity is automatic; for raw clients ensure OPTIONS includes DRIVER_NAME/DRIVER_VERSION
if (driverName == null || driverVersion == null) {
    configureDriverIdentity("my-app-driver", "1.2.3");
}

Prevention

When it happens

Trigger: A CQL client library (or an old/uncommon driver) does not send the driver name/version in connection options; custom or hand-rolled clients connecting via native protocol; the guardrail client_driver_version has warn thresholds including 'unset' and warned.containsKey("unset") is true.

Common situations: Homegrown clients, old driver versions that don't report identity, monitoring/proxy tools connecting raw CQL, scripts using minimal CQL implementations against a cluster with the driver-version guardrail enabled.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


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

Appendix: source

Thrown at src/java/org/apache/cassandra/db/guardrails/ClientDriverVersionGuardrail.java:80

        if (!enabled(state))
            return;

        Map<String, String> disallowed = disallowVersions.apply(state);
        Map<String, String> warned = warnVersions.apply(state);

        String sanitizedDriverId = driverName == null ? null : driverName.trim();
        if (sanitizedDriverId == null || sanitizedDriverId.isBlank())
        {
            logger.debug("minimum_client_driver_versions guardrail identified empty driver id to check the minimum version of");
            if (disallowed != null && disallowed.containsKey("unset"))
            {
                fail("Connections with unset driver id's are forbidden.", state);
                return;
            }

            if (warned != null && warned.containsKey("unset"))
            {
                warn("Connection with unset driver id was detected.");
            }
            return;
        }

        String sanitizedDriverVersion = GuardrailsOptions.sanitizeVersion(driverVersion);
        if (sanitizedDriverVersion == null)
        {
            sanitizedDriverVersion = "unset";
            logger.debug("minimum_client_driver_versions guardrail identified empty driver version to check the minimum version of");
        }
        else if (!GuardrailsOptions.isValidVersion(sanitizedDriverVersion))
        {
            logger.debug("minimum_client_driver_versions guardrail identified driver version which is not compliant semver version");
            return;
        }

        if (disallowed != null && !disallowed.isEmpty())
        {

View on GitHub (pinned to 88fd0f6a0e)