0.17.8

tigerbeetle/tigerbeetle0.17.8Jun 22, 2026by github-actions[bot]

AI Summary

A bug fix release addressing a critical schema change issue introduced in version 0.17.5 that caused crashes during upgrades, alongside preparations for the Ruby client.

Key Highlights

  • Fixes a schema change bug causing crashes when upgrading from 0.17.4 to 0.17.5-0.17.7 with pending transfers.
  • Fixes a 'headline compatibility bug' related to the unique keys revert.
  • Prepares the Ruby client for publishing.
  • Adds a gauge metric to record replica start time.

New Features

  • Gauge metric for recording replica start time.

Full Release Notes

# 0.17.8

### Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.17.4

## Server

* Binary: Download the zip for your OS and architecture from this page and unzip.
* Docker: `docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.8`
* Docker (debug image): `docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.8-debug`

## Clients

**NOTE**: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release *or newer*, subject to the newer release's
`Oldest supported client version`.

* .NET: `dotnet add package tigerbeetle --version 0.17.8`
* Go: `go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.17.8`
* Java: Update the version of `com.tigerbeetle.tigerbeetle-java` in `pom.xml`
  to `0.17.8`.
* Node.js: `npm install --save-exact tigerbeetle-node@0.17.8`
* Python: `pip install tigerbeetle==0.17.8`

## Changelog


This release fixes a schema change bug introduced in 0.17.5, that would cause crashes when
attempting to upgrade to 0.17.5 - 0.17.7 from 0.17.4 and below if pending transfers were
present on the cluster. See [#3808](https://github.com/tigerbeetle/tigerbeetle/issues/3808).

If you are upgrading from 0.17.4, or attempting to upgrade from a currently crashed cluster on
0.17.5 - 0.17.7, no special consideration is needed, and you may upgrade directly to 0.17.8.

If you are upgrading from either a fresh or upgraded cluster on 0.17.5 - 0.17.7, and have used
pending transfers, you can run the script
[here](https://github.com/tigerbeetle/tigerbeetle/issues/3808#issuecomment-4771439967) to check
if you have any blocks that are on the incorrect schema. If you do, please file an issue on GitHub,
otherwise it's safe to upgrade to 0.17.8.

### Safety And Performance

- [a299a](https://github.com/tigerbeetle/tigerbeetle/commit/a299a7d3f7c98793f4c84ee743062bdc720f79ac)

  Fix the headline compatibility bug.

- [#3802](https://github.com/tigerbeetle/tigerbeetle/pull/3802)

  Fix a bug in which the stash would overflow due to excess tombstones.

- [#3798](https://github.com/tigerbeetle/tigerbeetle/pull/3798)

  Fuzz scans over mutable secondary indexes, and fix an assertion.

- [#3797](https://github.com/tigerbeetle/tigerbeetle/pull/3797)

  Fix commit stall injection for clusters with 8 or more active clients.

### Features

- [#3787](https://github.com/tigerbeetle/tigerbeetle/pull/3787)

  Prepare Ruby client for publishing.

- [#3792](https://github.com/tigerbeetle/tigerbeetle/pull/3792)

  Add gauge metric to record replica start time.

### Internals

- [#3795](https://github.com/tigerbeetle/tigerbeetle/pull/3795)

  Add case conversion helpers to `stdx`.

- [#3781](https://github.com/tigerbeetle/tigerbeetle/pull/3781)

  Add `stdx.net` with IP address implementation.

- [#3801](https://github.com/tigerbeetle/tigerbeetle/pull/3801)

  Add `FuzzIterations` abstraction to control fuzzer smoke test duration.

### TigerTracks 🎧

- [The Fallen](https://www.youtube.com/watch?v=YsjHZXRGM1M)

<img width="2732" height="1567" alt="image" src="https://github.com/user-attachments/assets/1f156c1e-2341-43f7-b58f-b59aefde0c5c" />