apache/cassandra · info

Schema pull request from {} ignored - please upgrade

Error message

Schema pull request from {} ignored - please upgrade

What it means

SchemaPullVerbHandler.doVerb logs this warning and ignores an incoming schema pull request. It means a peer running an older Cassandra version asked this node to pull its schema; legacy schema sync is no longer supported, so the request is dropped (modern schema sync uses a different mechanism).

Source

Thrown at src/java/org/apache/cassandra/schema/SchemaPullVerbHandler.java:41

import org.apache.cassandra.net.IVerbHandler;
import org.apache.cassandra.net.Message;
import org.apache.cassandra.net.NoPayload;

/**
 * Sends it's current schema state in form of mutations in response to the remote node's request.
 * Such a request is made when one of the nodes, by means of Gossip, detects schema disagreement in the ring.
 * @deprecated See CEP-21
 */
@Deprecated(since = "CEP-21")
public final class SchemaPullVerbHandler implements IVerbHandler<NoPayload>
{
    public static final SchemaPullVerbHandler instance = new SchemaPullVerbHandler();

    private static final Logger logger = LoggerFactory.getLogger(SchemaPullVerbHandler.class);

    public void doVerb(Message<NoPayload> message)
    {
        logger.warn("Schema pull request from {} ignored - please upgrade", message.from());
    }
}

View on GitHub (pinned to 88fd0f6a0e)

Solutions

  1. Upgrade remaining old-version nodes so the cluster is homogeneous and modern schema dissemination is used
  2. Verify all nodes' versions (nodetool version / nodetool ring) and finish the rolling upgrade
  3. Safe to ignore transiently during upgrades: the request is intentionally ignored, not an error
  4. Ensure schema agrees after upgrade completes (nodetool describecluster)
Defensive patterns

Strategy: fallback

Validate before calling

// only send schema pull to peers expected to support it
CassandraVersion v = Gossiper.instance.getReleaseVersion(peer);
if (v != null && v.major < 4) {
    logger.warn("Skipping schema pull from legacy peer {}", peer);
    return;
}

Prevention

When it happens

Trigger: A pre-4.x (legacy schema-sync) node sends a SCHEMA_PULL verb message to this node during cluster startup/schema exchange in a mixed-version cluster.

Common situations: Rolling upgrades where old-version nodes are still running and attempting legacy schema convergence against new-version nodes; nodes restarted during an incomplete upgrade.

Related errors


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