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

  1. Re-issue the stream after ensuring the table exists on the receiving node (schema agreement)
  2. 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)