The ScyllaDB team is pleased to announce the release of ScyllaDB 2026.1.12, a production-ready patch release for ScyllaDB 2026.1 Long Term Support (LTS) Release.
More information on ScyllaDB Version Support Policy is available here.
Related Links
Bug Fixes
The following issues are fixed in this release.
Alternator
- A use-after-free could occur in the
batch_write_itemoperation. The handler spawned a set of background fibers, each holding a reference to the request’sclient_stateobject, and returned as soon as the first error was detected without waiting for the remaining fibers to complete. If the request’sclient_statewas destroyed before a still-running fiber resumed, that fiber could access already-freed memory.batch_write_itemnow waits for all spawned fibers to complete before returning, ensuringclient_stateremains valid for their entire lifetime.
scylladb#31155
Compaction
- Compaction backlog was under-reported for compaction groups created after a table started, for example due to tablet split, migration, or merge. This caused the compaction controller to under-provision resources for those groups, potentially delaying compaction work. Compaction groups now register their backlog tracker immediately upon creation, so their workload is correctly accounted for.
scylladb#31187
CQL
-
Empty values of fixed-size CQL types (such as
int,bigint, ortimeuuid) are now correctly handled when used as clustering key components or nested inside frozen collections, tuples, or UDTs. Previously, such values could cause incorrect ordering, an internal error, or a garbage result. The fix aligns the encoding behavior with Cassandra.
scylladb#31104 -
CQL bind variables used with the
INoperator can now be given lowercase names, matching the naming rules used elsewhere in CQL.
scylladb#31153
Networking
- In rare cases, RPC stream decompression could produce corrupted data, surfacing as checksum failures on production clusters. The decompressor now uses a correctly sized buffer, eliminating the corruption.
scylladb#31067
Encryption
- When rewriting a single SSTable component (for example, when updating
repaired_atinStatistics.db), the encryption layer now preserves the original encryption parameters from the SSTable’s metadata rather than deriving them from the current schema or node configuration. Previously, if the encryption settings had changed since the SSTable was originally written, the rewritten component could end up with different encryption parameters from the other components, rendering the SSTable unreadable.
scylladb#31004
Storage
-
Object storage uploads and downloads did not correctly handle empty (zero-length) components. On writes, an empty upload sink produced no object at all, which could cause subsequent upload steps to fail. On reads, an empty object could not be read back due to an unsatisfiable byte-range request. Both cases are now handled correctly, so empty SStable components round-trip through object storage correctly.
scylladb#31069 -
A race condition in S3 credential refresh could allow a request to be signed with stale or empty credentials while a credential reset was in progress. The server rejects such requests with a non-retryable error, causing the operation to fail rather than be retried. The credential refresh logic is now properly serialized, preventing this race..
scylladb#31148