{"record":{"id":"8ed463e3d35a6903","repo":"apache/cassandra","slug":"error-occurred-during-verifying","errorCode":null,"errorMessage":"Error occurred during verifying","messagePattern":"Error occurred during verifying","errorType":"exception","errorClass":"java.lang.RuntimeException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/tools/nodetool/Verify.java","lineNumber":123,"sourceCode":"\n        List<String> keyspaces = parseOptionalKeyspace(args, probe);\n        String[] tableNames = parseOptionalTables(args);\n\n        if (checkOwnsTokens && !extendedVerify)\n        {\n            out.println(\"Token verification requires --extended-verify\");\n            // if System.exit gets removed, make sure to update org.apache.cassandra.distributed.test.NodeToolTest.testNodetoolSystemExit\n            System.exit(1);\n        }\n\n        for (String keyspace : keyspaces)\n        {\n            try\n            {\n                probe.verify(out, extendedVerify, checkVersion, diskFailurePolicy, mutateRepairStatus, checkOwnsTokens, quick, onlySai, includeSai, keyspace, tableNames);\n            } catch (Exception e)\n            {\n                throw new RuntimeException(\"Error occurred during verifying\", e);\n            }\n        }\n    }\n}\n","sourceCodeStart":105,"sourceCodeEnd":128,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/tools/nodetool/Verify.java#L105-L128","documentation":"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.","triggerScenarios":"`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.","commonSituations":"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.","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)."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// preflight: node reachable and no pending topology operations\nrunNodetool(\"status\"); // exit non-zero if any node is DOWN before verifying","typeGuard":null,"tryCatchPattern":"try { runNodetool(\"verify\", keyspace, table); }\ncatch (RuntimeException e) {\n  Throwable root = e.getCause();\n  if (root != null && root.getMessage() != null && root.getMessage().contains(\"Corrupt\")) {\n    // schedule scrub or restore from snapshot\n  }\n  log.error(\"verify failed\", root);\n}","preventionTips":["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."],"tags":["nodetool","verify","sstable"],"backgroundTag":"checksum-mismatch","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}