apache/cassandra · error · java.lang.RuntimeException
Error occurred during verifying
Error message
Error occurred during verifying
What it means
This is the generic wrapper thrown when probe.verify(...) (the JMX-backed verifier) raises any exception while checking SSTables for the requested keyspace/table. The original cause is attached; the message itself only indicates the verify operation failed. Verification may have failed on checksum mismatch, missing components, or a server-side error.
Source
Thrown at src/java/org/apache/cassandra/tools/nodetool/Verify.java:123
List<String> keyspaces = parseOptionalKeyspace(args, probe);
String[] tableNames = parseOptionalTables(args);
if (checkOwnsTokens && !extendedVerify)
{
out.println("Token verification requires --extended-verify");
// if System.exit gets removed, make sure to update org.apache.cassandra.distributed.test.NodeToolTest.testNodetoolSystemExit
System.exit(1);
}
for (String keyspace : keyspaces)
{
try
{
probe.verify(out, extendedVerify, checkVersion, diskFailurePolicy, mutateRepairStatus, checkOwnsTokens, quick, onlySai, includeSai, keyspace, tableNames);
} catch (Exception e)
{
throw new RuntimeException("Error occurred during verifying", e);
}
}
}
}
View on GitHub (pinned to 88fd0f6a0e)
Solutions
- Read the 'Caused by' exception to identify the specific SSTable or server error.
- Check the Cassandra server log (system.log) around the failure time for details.
- Run a scrub (nodetool scrub) or restore the affected SSTables from backup if corruption is confirmed.
- Retry verify after resolving topology/ownership issues (e.g. complete any pending moves).
Defensive patterns
Strategy: try-catch
Validate before calling
// preflight: node reachable and no pending topology operations
runNodetool("status"); // exit non-zero if any node is DOWN before verifying Try / catch
try { runNodetool("verify", keyspace, table); }
catch (RuntimeException e) {
Throwable root = e.getCause();
if (root != null && root.getMessage() != null && root.getMessage().contains("Corrupt")) {
// schedule scrub or restore from snapshot
}
log.error("verify failed", root);
} Prevention
- Always inspect the 'Caused by' chain, not the wrapper message.
- Take a snapshot before any repair/scrub following a verify failure.
- Complete topology operations (rebuild, move) before extended verify with token checks.
- Monitor disk health; run verify after any suspected crash or I/O error.
When it happens
Trigger: `nodetool verify <ks> <table>` where the server-side verifier throws: corrupted SSTable, missing index/components (e.g. with --check-tokens/extended verify), wrong disk failure policy interaction, or a JMX communication error.
Common situations: Suspected corruption after a crash or disk issue; extended verify with --check-owns-tokens on a cluster with pending topology changes; verifying while repairs/compactions race; nodes with failing disks.
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
- Index summary component of sstable
- Some directories failed to import, check server logs for det
- Key %s in sstable %s not owned by local ranges %s
- SSTable format name in %s cannot be null
- SSTable format name for %s must be non-empty, lower-case let
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/8ed463e3d35a6903.
Report an issue: GitHub.