[RELEASE] ScyllaDB 2026.3.5

The ScyllaDB team is pleased to announce the release of ScyllaDB 2026.3.5, a production-ready patch release for ScyllaDB 2026.3 Short Term Support (STS) Minor Feature Release.

More information on ScyllaDB Version Support Policy is available here.

Related Links

Bug Fixes

The following issues are fixed in this release.

Alternator

  • DescribeTable did not return WarmThroughput for a table or ProvisionedThroughput for its Global Secondary Indexes (GSIs), so tools that expect these fields, such as the Terraform AWS Provider, could not manage Alternator tables. DescribeTable now returns WarmThroughput for the table and for each active GSI, and returns each GSI’s own ProvisionedThroughput. CreateTable and UpdateTable now validate GSI ProvisionedThroughput the same way DynamoDB does: it is required for PROVISIONED tables, rejected for PAY_PER_REQUEST tables, and both capacities must be at least 1. In addition, CreateTable now returns the complete TableDescription, and a table ProvisionedThroughput of zero or less is rejected. As a result, Alternator works better as a drop-in DynamoDB replacement with standard infrastructure-as-code tools.
    scylladb#32383

CQL

  • A query that used a bind variable inside an aggregate’s argument (for example, max(intasblob(?))) or applied to its result (for example, max(m)[?]) could cause the node to restart. Aggregates are now evaluated with the query options, so such queries return the expected results, with or without GROUP BY.
    scylladb#32754

  • A query that combined a global secondary index on a static column with a clustering-key restriction could cause the node to restart. The clustering-key restriction is no longer pushed into the index lookup, and it is still enforced when reading the base table, so such queries now return correct results.
    scylladb#12829, scylladb#32633

Hinted Handoff

  • When a hint segment contained an unreadable entry, hints from that segment that had not yet been delivered could be discarded, or the segment could be retried repeatedly. Such a segment is now handled like any other segment: hints that can be read are retried until delivered, and the segment is removed afterward. This improves hint delivery and consistency between replicas.
    scylladb#32474

  • With commitlog encryption enabled, changing the number of shards moved hint segments to other shard directories without their encryption metadata files, so those hints could not be replayed. Hint segments are now moved together with their encryption metadata, so hints remain readable after a shard count change. Segments separated from their metadata by earlier versions are not recovered.
    scylladb#32720

Lightweight Transactions (LWT)

  • For tables in tablets keyspaces, writes to the per-table Paxos state tables did not wait for the commitlog to sync in the default periodic commitlog mode, so an acknowledged Paxos promise or accept might not be retained after an unclean node stop. Paxos state writes now always wait for the commitlog sync, preserving linearizability of LWT operations on tablets tables.
    scylladb#32719

Materialized Views (MV)

  • Running DROP TABLE on a tablets table with pending view building tasks left those tasks behind, which could prevent other materialized views and secondary indexes in tablets keyspaces from being built. DROP TABLE now removes the view building tasks and view build status entries of the dropped table, and the view building coordinator also removes tasks whose base table no longer exists. This also unblocks clusters that already have leftover tasks.
    scylladb#32449

  • While a materialized view or secondary index was being built, tombstone garbage collection could purge a view tombstone before the view builder wrote the row it shadows, which could make a deleted view row reappear. Tombstone GC is now suspended for a view until the view is built on every node, so view and index contents stay consistent with the base table.
    scylladb#32121

Monitoring

  • The scylla_scylladb_current_version metric now includes a host_id label with the node’s host ID, alongside the existing version label. This makes it easier to correlate a node’s host ID with its instance and IP address in monitoring dashboards.
    scylladb#32413

  • During topology operations such as tablet repair, barrier_and_drain logged progress at the info level on every shard and for every closed session, which could produce enough log volume to trigger journald rate limiting. Barrier arrival and completion are now logged once per node at the info level, with per-shard and per-session details moved to the debug level, keeping logs concise and complete.
    scylladb#32561

Networking

  • With RPC compression enabled, an internode message could, in rare cases, be decompressed incorrectly and rejected with an RPC checksum error, because the LZ4 decompression ring buffer was slightly too small. The buffer now includes the margin required by LZ4, so compressed internode messages are always decoded correctly. scylladb#32486

Reliability

  • When the commitlog wrote a batch of mutations and switched to a new segment partway through, the schema information required by the new segment could be omitted, which could affect commitlog replay. Schema information is now tracked per segment, so every segment contains the schemas needed to replay it. scylladb#32498

  • On a node with a slow disk, enabling the LARGE_DATA_VIRTUAL_TABLES cluster feature dropped the legacy system.large_* tables inside a group 0 operation, which could delay group 0 long enough for a joining node’s startup to time out. The legacy tables are now dropped in the background, so group 0 stays available and nodes join as expected. scylladb#32473

  • On hosts with an uneven NUMA node layout, a node started with a reduced number of shards (--smp) could fail at startup. Such nodes now start normally. scylladb#32457

Repair

  • Rebuilding a tablet during node replace, removenode, or a replication factor change always ran a full repair between the remaining replicas, which could make these operations take a long time on large nodes. The rebuild repair now compares only unrepaired data, since data already marked as repaired by incremental repair is identical on all replicas. This can significantly shorten replace and removenode operations on clusters that use incremental repair. The new behavior is enabled automatically once all nodes in the cluster are upgraded. scylladb#32454

Storage

  • For keyspaces stored on object storage, the SSTable registry (system.sstables) could be read in an outdated state after an unclean node stop. This could prevent the node from starting, or cause objects of a live SSTable to be removed. Registry updates are now synced to the commitlog and replayed before keyspaces are loaded, so the registry stays consistent after an unclean stop. scylladb#32448

  • S3 can respond to copy and multipart-upload requests with 200 OK and an error in the response body. The S3 client now detects these embedded errors in CopyObject and UploadPartCopy replies and handles them as regular, retryable errors. This improves the stability of memtable flushes and compactions on object storage. scylladb#32702

  • A node that served reads from an object storage table under a service level could restart during a graceful shutdown. Object storage connections are now closed before service level resources are released, so the node shuts down cleanly. scylladb#32034

Tablets

  • A memtable write waiting for available memory was not taken into account when a tablet split was acknowledged, so the write could land in the pre-split group and cause the node to restart when the split was finalized. Pending writes are now tracked, and the split is acknowledged only after they complete. scylladb#32499

  • If a node was stopped uncleanly shortly after a table was created in a tablets keyspace, the table could be missing on that node after restart. Tablet metadata is now loaded after the group 0 log is replayed, so such tables are created correctly on restart. In addition, errors that occur while adding a table are now reported instead of being hidden. scylladb#32316

  • Loading an SSTable during tablet streaming could delay topology barriers for other operations, especially while the table was being split. SSTable loading no longer holds the replication map for the whole load, which keeps topology operations and scale-out moving promptly. scylladb#32488

  • ALTER KEYSPACE on a tablets keyspace could wait until the client timeout when a tablet rebuild kept being retried, because it could miss short periods when the topology was idle. The statement now waits on the locally applied topology state, so it completes reliably, and an unsuccessful replication factor change is reported immediately. scylladb#32802