{"record":{"id":"5209bd94a8ce89a0","repo":"apache/cassandra","slug":"invalid-recoverable-crc-mismatch-detected-whil-5209bd","errorCode":null,"errorMessage":"{} invalid, recoverable CRC mismatch detected while reading a large message","messagePattern":"(.+?) invalid, recoverable CRC mismatch detected while reading a large message","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/java/org/apache/cassandra/net/InboundMessageHandler.java","lineNumber":272,"sourceCode":"        }\n        else if (frame.isSelfContained)\n        {\n            receivedBytes += frame.frameSize;\n            corruptFramesRecovered++;\n            noSpamLogger.warn(\"{} invalid, recoverable CRC mismatch detected while reading messages (corrupted self-contained frame)\", id());\n        }\n        else if (null == largeMessage) // first frame of a large message\n        {\n            receivedBytes += frame.frameSize;\n            corruptFramesUnrecovered++;\n            noSpamLogger.error(\"{} invalid, unrecoverable CRC mismatch detected while reading messages (corrupted first frame of a large message)\", id());\n            throw new Crc.InvalidCrc(frame.readCRC, frame.computedCRC);\n        }\n        else // subsequent frame of a large message\n        {\n            processSubsequentFrameOfLargeMessage(frame);\n            corruptFramesRecovered++;\n            noSpamLogger.warn(\"{} invalid, recoverable CRC mismatch detected while reading a large message\", id());\n        }\n    }\n\n    String id(boolean includeReal)\n    {\n        if (!includeReal)\n            return id();\n\n        return SocketFactory.channelId(peer, (InetSocketAddress) channel.remoteAddress(),\n                                       self, (InetSocketAddress) channel.localAddress(),\n                                       type, channel.id().asShortText());\n    }\n\n    protected String id()\n    {\n        return SocketFactory.channelId(peer, self, type, channel.id().asShortText());\n    }\n","sourceCodeStart":254,"sourceCodeEnd":290,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/net/InboundMessageHandler.java#L254-L290","documentation":"Warns that a CRC mismatch occurred on a subsequent frame of a large (multi-frame) message. Because prior frames were already accepted, the handler treats this frame as recoverable: the message is dropped and the connection continues, but the large message never completes.","triggerScenarios":"processCorruptFrame encounters a CRC mismatch on any frame after the first frame of a large message being streamed.","commonSituations":"Same root causes as frame corruption generally: flaky network hardware, bit flips, unstable links between datacenters; more likely for large messages (schema migrations, repairs streaming large payloads) since they occupy the wire longer.","solutions":["Diagnose physical/network path between the nodes (errors counters, packet drops).","Retry the operation that triggered the large message (it will be re-sent on a healthy path).","Check for MTU mismatches or fragmentation issues between the hosts.","Monitor corruptFramesRecovered metrics and correlate with specific node pairs to localize bad hardware.","Reduce large-message frequency (e.g. avoid giant batches/schema storms) while hardware is fixed."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"// Detected via logs/metrics only:\n// grep 'invalid, recoverable CRC mismatch' /var/log/cassandra/system.log\n// Then re-run the operation that sent the large message.","preventionTips":["Align MTU across the network path to avoid fragmentation issues.","Alert on corruptFramesRecovered metrics per node pair.","Avoid scheduling huge schema/stream operations over unstable links.","Test DC-to-DC links for packet loss before large transfers."],"tags":["network","corruption","crc","large-message"],"backgroundTag":"checksum-mismatch","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}