apache/cassandra · error · NoSuchFileException
Index summary component of sstable
Error message
Index summary component of sstable
What it means
Raised (as NoSuchFileException) when the Summary component file for an SSTable cannot be loaded during verification — IndexSummaryComponent.load returned null, meaning the summary file is missing or unreadable/unparseable. The verifier treats a missing summary as a hard verification failure.
Source
Thrown at src/java/org/apache/cassandra/io/sstable/format/big/BigTableVerifier.java:208
duplicateRows,
keyString, first.clustering().toString(sstable.metadata()),
sstable.metadata().keyspace,
sstable.metadata().name,
sstable,
dateString(firstMinTs), dateString(firstMaxTs),
dateString(minTimestamp), dateString(maxTimestamp), minTimestamp == maxTimestamp);
}
private String dateString(long time)
{
return Instant.ofEpochMilli(TimeUnit.MICROSECONDS.toMillis(time)).toString();
}
private void deserializeIndexSummary(SSTableReader sstable) throws IOException
{
IndexSummaryComponent summaryComponent = IndexSummaryComponent.load(sstable.descriptor.fileFor(Components.SUMMARY), cfs.metadata());
if (summaryComponent == null)
throw new NoSuchFileException("Index summary component of sstable " + sstable.descriptor + " is missing");
FileUtils.closeQuietly(summaryComponent.indexSummary);
}
}
View on GitHub (pinned to 88fd0f6a0e)
Solutions
- Restore the Summary.db file from backup or run `nodetool scrub` (rebuilds summaries), or `sstablescrub`
- Delete the broken SSTable and repair the range from replicas
- Rebuild summaries via `sstablemetadata`/offline tools or restart with summary rebuild on load
Defensive patterns
Strategy: try-catch
Validate before calling
File summary = descriptor.fileFor(Components.SUMMARY);
if (summary == null || !summary.exists()) {
// regenerate via scrub or restore from snapshot before loading
} Try / catch
try { component = IndexSummaryComponent.load(file, metadata); }
catch (NoSuchFileException e) { logger.warn("Missing Summary.db for {}", descriptor); regenerateSummary(descriptor); } Prevention
- Copy ALL SSTable components together (Data.db, Index.db, Summary.db, etc.)
- Do not delete 'extra' files in the data directory
- Use nodetool snapshot for consistent backups
When it happens
Trigger: `nodetool verify` on an SSTable descriptor whose SUMMARY component (Summary.db) file is absent or unreadable, e.g. incomplete copy of SSTable files or deleted file.
Common situations: Manually copying only Data.db/Index.db; cleanup scripts deleting 'extra' files; crash during summary rebuild; wrong permissions.
Understand the failure class
Background: "File not found" and ENOENT errors: why libraries can't find a file that should exist — this error's family across 50 libraries.
Related errors
- CorruptSSTableException / NoSuchFileException: missing compr
- Cannot deserialize index summary from %s
- Failed to save index summary to
- Error occurred during verifying
- Key %s in sstable %s not owned by local ranges %s
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/c5c0318679165b81.
Report an issue: GitHub.