{"record":{"id":"e621353773881e30","repo":"apache/cassandra","slug":"table-s-was-dropped-during-streaming","errorCode":null,"errorMessage":"Table %s was dropped during streaming","messagePattern":"Table (.+?) was dropped during streaming","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/db/streaming/CassandraEntireSSTableStreamReader.java","lineNumber":96,"sourceCode":"        this.session = session;\n        this.messageHeader = messageHeader;\n        this.tableId = messageHeader.tableId;\n        this.fileSequenceNumber = messageHeader.sequenceNumber;\n    }\n\n    /**\n     * @param in where this reads data from\n     * @return SSTable transferred\n     * @throws IOException if reading the remote sstable fails. Will throw an RTE if local write fails.\n     */\n    @Override\n    public SSTableMultiWriter read(DataInputPlus in) throws IOException\n    {\n        ColumnFamilyStore cfs = ColumnFamilyStore.getIfExists(tableId);\n        if (cfs == null)\n        {\n            // schema was dropped during streaming\n            throw new IOException(\"Table \" + tableId + \" was dropped during streaming\");\n        }\n\n        ComponentManifest manifest = header.componentManifest;\n        long totalSize = manifest.totalSize();\n\n        logger.debug(\"[Stream #{}] Started receiving sstable #{} from {}, size = {}, table = {}\",\n                     session.planId(),\n                     fileSequenceNumber,\n                     session.peer,\n                     prettyPrintMemory(totalSize),\n                     cfs.metadata());\n\n        SSTableTxnZeroCopyWriter writer = null;\n\n        try\n        {\n            writer = createWriter(cfs, totalSize, manifest.components());\n            long bytesRead = 0;","sourceCodeStart":78,"sourceCodeEnd":114,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/db/streaming/CassandraEntireSSTableStreamReader.java#L78-L114","documentation":"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.","triggerScenarios":"Thrown at src/java/org/apache/cassandra/db/streaming/CassandraEntireSSTableStreamReader.java:96 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}