{"record":{"id":"976f08c9a9946e0c","repo":"apache/cassandra","slug":"schema-pull-request-from-ignored-please-upgra","errorCode":null,"errorMessage":"Schema pull request from {} ignored - please upgrade","messagePattern":"Schema pull request from (.+?) ignored - please upgrade","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"src/java/org/apache/cassandra/schema/SchemaPullVerbHandler.java","lineNumber":41,"sourceCode":"import org.apache.cassandra.net.IVerbHandler;\nimport org.apache.cassandra.net.Message;\nimport org.apache.cassandra.net.NoPayload;\n\n/**\n * Sends it's current schema state in form of mutations in response to the remote node's request.\n * Such a request is made when one of the nodes, by means of Gossip, detects schema disagreement in the ring.\n * @deprecated See CEP-21\n */\n@Deprecated(since = \"CEP-21\")\npublic final class SchemaPullVerbHandler implements IVerbHandler<NoPayload>\n{\n    public static final SchemaPullVerbHandler instance = new SchemaPullVerbHandler();\n\n    private static final Logger logger = LoggerFactory.getLogger(SchemaPullVerbHandler.class);\n\n    public void doVerb(Message<NoPayload> message)\n    {\n        logger.warn(\"Schema pull request from {} ignored - please upgrade\", message.from());\n    }\n}\n","sourceCodeStart":23,"sourceCodeEnd":44,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/schema/SchemaPullVerbHandler.java#L23-L44","documentation":"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).","triggerScenarios":"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.","commonSituations":"Rolling upgrades where old-version nodes are still running and attempting legacy schema convergence against new-version nodes; nodes restarted during an incomplete upgrade.","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)"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"// only send schema pull to peers expected to support it\nCassandraVersion v = Gossiper.instance.getReleaseVersion(peer);\nif (v != null && v.major < 4) {\n    logger.warn(\"Skipping schema pull from legacy peer {}\", peer);\n    return;\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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"],"tags":["schema","upgrade","mixed-version","legacy"],"backgroundTag":"incompatible-node-version","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}