{"record":{"id":"33a5cd402ffa1975","repo":"apache/cassandra","slug":"in-progress-sequences-differ","errorCode":null,"errorMessage":"In progress sequences differ: {} != {}","messagePattern":"In progress sequences differ: (.+?) != (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/java/org/apache/cassandra/tcm/ClusterMetadata.java","lineNumber":1267,"sourceCode":"            directory.dumpDiff(other.directory);\n        }\n        if (!tokenMap.equals(other.tokenMap))\n        {\n            logger.warn(\"Token maps differ:\");\n            tokenMap.dumpDiff(other.tokenMap);\n        }\n        if (!placements.equals(other.placements))\n        {\n            logger.warn(\"Placements differ:\");\n            placements.dumpDiff(other.placements);\n        }\n        if (!lockedRanges.equals(other.lockedRanges))\n        {\n            logger.warn(\"Locked ranges differ: {} != {}\", lockedRanges, other.lockedRanges);\n        }\n        if (!inProgressSequences.equals(other.inProgressSequences))\n        {\n            logger.warn(\"In progress sequences differ: {} != {}\", inProgressSequences, other.inProgressSequences);\n        }\n        if (!extensions.equals(other.extensions))\n        {\n            logger.warn(\"Extensions differ: {} != {}\", extensions, other.extensions);\n        }\n        if (!cmsMembership.equals(other.cmsMembership))\n        {\n            logger.warn(\"CMS Membership differ: {} != {}\", cmsMembership, other.cmsMembership);\n        }\n    }\n\n    @Override\n    public int hashCode()\n    {\n        return Objects.hash(epoch, schema, directory, tokenMap, placements, accordFastPath, lockedRanges, inProgressSequences, consensusMigrationState, accordStaleReplicas, extensions, cmsMembership);\n    }\n\n    public static ClusterMetadata current()","sourceCodeStart":1249,"sourceCodeEnd":1285,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/tcm/ClusterMetadata.java#L1249-L1285","documentation":"ClusterMetadata logs a warning (not a thrown exception) when two ClusterMetadata instances differ in their inProgressSequences map. It is part of a difference-diagnostics helper that walks each metadata component and warns on the first components that diverge, typically to help operators debug state divergence between nodes.","triggerScenarios":"Calling ClusterMetadata.equals/metadata comparison diagnostics against another ClusterMetadata whose inProgressSequences map differs (e.g. an in-flight transformation such as a bootstrap or replace is recorded on one side but not the other).","commonSituations":"Node restarts or gossip-based metadata application during an ongoing transformation; debugging why two CMS replicas disagree on cluster state; comparing a snapshot fetched from a peer against local state mid-operation.","solutions":["Check which transformation sequence is in progress with nodetool and let it complete before comparing metadata.","Ensure all nodes are caught up to the same epoch (fetch log from CMS) before diffing.","If state is stuck, restart the node or use `nodetool cms show` / revertToEpoch-style recovery under community guidance.","Upgrade to a version where this diagnostics method exists and compare full ClusterMetadata dumps for the differing sequences."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (!local.inProgressSequences().equals(remote.inProgressSequences())) logger.info(\"waiting for in-progress transformation to converge before diff\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only diff metadata after all nodes report the same epoch","Avoid comparing metadata mid-transformation","Use nodetool cms show to confirm quiescent state"],"tags":["cluster-metadata","diagnostics","state-divergence"],"backgroundTag":"internal-invariant-violation","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"}