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
- Upgrade remaining old-version nodes so the cluster is homogeneous and modern schema dissemination is used
- Verify all nodes' versions (nodetool version / nodetool ring) and finish the rolling upgrade
- Safe to ignore transiently during upgrades: the request is intentionally ignored, not an error
- 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
- Complete rolling upgrades promptly; avoid long mixed-version periods
- Verify node versions with nodetool version during upgrades
- Check schema agreement (nodetool describecluster) after upgrade completes
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
- Ignoring schema push request from {}, please upgrade
- Unsupported pre-3.0 commit log found; cannot read.
- Commitlog segment is too old to open; upgrade to 1.2.5+ firs
- All nodes are not yet upgraded - %s is running %s
- category %s not found in %s
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/976f08c9a9946e0c.
Report an issue: GitHub.