{"record":{"id":"b1a88af76fe8320c","repo":"apache/cassandra","slug":"stream-session-sstable-s-pendingrepair-uuid-m","errorCode":null,"errorMessage":"Stream Session & SSTable (%s) pendingRepair UUID mismatch.","messagePattern":"Stream Session & SSTable \\((.+?)\\) pendingRepair UUID mismatch\\.","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/db/streaming/CassandraEntireSSTableStreamReader.java","lineNumber":74,"sourceCode":" * CassandraEntireSSTableStreamReader reads SSTable off the wire and writes it to disk.\n */\npublic class CassandraEntireSSTableStreamReader implements IStreamReader\n{\n    private static final Logger logger = LoggerFactory.getLogger(CassandraEntireSSTableStreamReader.class);\n\n    private final TableId tableId;\n    private final StreamSession session;\n    private final StreamMessageHeader messageHeader;\n    private final CassandraStreamHeader header;\n    private final int fileSequenceNumber;\n\n    public CassandraEntireSSTableStreamReader(StreamMessageHeader messageHeader, CassandraStreamHeader streamHeader, StreamSession session)\n    {\n        if (session.getPendingRepair() != null)\n        {\n            // we should only ever be streaming pending repair sstables if the session has a pending repair id\n            if (!session.getPendingRepair().equals(messageHeader.pendingRepair))\n                throw new IllegalStateException(format(\"Stream Session & SSTable (%s) pendingRepair UUID mismatch.\", messageHeader.tableId));\n        }\n\n        this.header = streamHeader;\n        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);","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/db/streaming/CassandraEntireSSTableStreamReader.java#L56-L92","documentation":"In CassandraEntireSSTableStreamReader's constructor, the pendingRepair UUID on the stream message header does not match the session's pendingRepair ID. Entire-SSTable streaming of an incremental-repair session requires exact match; mismatch means stale or misrouted stream data, so construction fails before reading.","triggerScenarios":"Thrown at src/java/org/apache/cassandra/db/streaming/CassandraEntireSSTableStreamReader.java:74 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify pendingRepair IDs on sender and receiver match; restart the stream with consistent repair state","Abort the incremental repair session that produced the mismatch and re-run the repair"],"exampleFix":null,"handlingStrategy":"validation","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"}