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

  1. Read the 'Caused by' exception to identify the specific SSTable or server error.
  2. Check the Cassandra server log (system.log) around the failure time for details.
  3. Run a scrub (nodetool scrub) or restore the affected SSTables from backup if corruption is confirmed.
  4. 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

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


AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10). Data as JSON: /api/errors/8ed463e3d35a6903. Report an issue: GitHub.