apache/cassandra · warning
invalid, recoverable CRC mismatch detected while reading a…
Error message
{} invalid, recoverable CRC mismatch detected while reading a large message What it means
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.
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.
Defensive patterns
Strategy: retry
Try / catch
// Detected via logs/metrics only: // grep 'invalid, recoverable CRC mismatch' /var/log/cassandra/system.log // Then re-run the operation that sent the large message.
Prevention
- 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.
When it happens
Trigger: processCorruptFrame encounters a CRC mismatch on any frame after the first frame of a large message being streamed.
Common situations: 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.
Understand the failure class
Background: Checksum mismatch errors: "checksum verification failed", "digest mismatch", "expected vs actual checksum" — what they mean and how to fix them — this error's family across 41 libraries.
Related errors
- invalid, recoverable CRC mismatch detected while reading…
- Digest mismatch exception
- Encountered bad header at position
- Failed to read a hint for
- Failed to read a hint for
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/5209bd94a8ce89a0.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/net/InboundMessageHandler.java:272
}
else if (frame.isSelfContained)
{
receivedBytes += frame.frameSize;
corruptFramesRecovered++;
noSpamLogger.warn("{} invalid, recoverable CRC mismatch detected while reading messages (corrupted self-contained frame)", id());
}
else if (null == largeMessage) // first frame of a large message
{
receivedBytes += frame.frameSize;
corruptFramesUnrecovered++;
noSpamLogger.error("{} invalid, unrecoverable CRC mismatch detected while reading messages (corrupted first frame of a large message)", id());
throw new Crc.InvalidCrc(frame.readCRC, frame.computedCRC);
}
else // subsequent frame of a large message
{
processSubsequentFrameOfLargeMessage(frame);
corruptFramesRecovered++;
noSpamLogger.warn("{} invalid, recoverable CRC mismatch detected while reading a large message", id());
}
}
String id(boolean includeReal)
{
if (!includeReal)
return id();
return SocketFactory.channelId(peer, (InetSocketAddress) channel.remoteAddress(),
self, (InetSocketAddress) channel.localAddress(),
type, channel.id().asShortText());
}
protected String id()
{
return SocketFactory.channelId(peer, self, type, channel.id().asShortText());
}
View on GitHub (pinned to 88fd0f6a0e)