apache/cassandra · error
Table was dropped during streaming
Error message
Table %s was dropped during streaming
What it means
In CassandraEntireSSTableStreamReader.read, ColumnFamilyStore.getIfExists(tableId) is null because the table was dropped while the SSTable stream was in flight. The reader throws IOException('Table %s was dropped during streaming') to abort the transfer; the stream session treats it as a failed stream.
Solutions
- Re-issue the stream after ensuring the table exists on the receiving node (schema agreement)
- Skip/retry the stream request once the table has been recreated
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at src/java/org/apache/cassandra/db/streaming/CassandraEntireSSTableStreamReader.java:96 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/e621353773881e30.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/db/streaming/CassandraEntireSSTableStreamReader.java:96
this.session = session;
this.messageHeader = messageHeader;
this.tableId = messageHeader.tableId;
this.fileSequenceNumber = messageHeader.sequenceNumber;
}
/**
* @param in where this reads data from
* @return SSTable transferred
* @throws IOException if reading the remote sstable fails. Will throw an RTE if local write fails.
*/
@Override
public SSTableMultiWriter read(DataInputPlus in) throws IOException
{
ColumnFamilyStore cfs = ColumnFamilyStore.getIfExists(tableId);
if (cfs == null)
{
// schema was dropped during streaming
throw new IOException("Table " + tableId + " was dropped during streaming");
}
ComponentManifest manifest = header.componentManifest;
long totalSize = manifest.totalSize();
logger.debug("[Stream #{}] Started receiving sstable #{} from {}, size = {}, table = {}",
session.planId(),
fileSequenceNumber,
session.peer,
prettyPrintMemory(totalSize),
cfs.metadata());
SSTableTxnZeroCopyWriter writer = null;
try
{
writer = createWriter(cfs, totalSize, manifest.components());
long bytesRead = 0;View on GitHub (pinned to 88fd0f6a0e)