Skip to content

v1.7.4

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Aug 13:56
b9b9aad

Restate 1.7.4

Restate 1.7.4 is a focused patch release with important fixes for VQueue scheduling, failure detection, partition-store write availability, and HTTP ingress error handling.

🛡️ VQueue Reliability Fixes

This release fixes a race during asynchronous VQueue refills. Concurrent updates could previously move an entry beyond an in-progress refill's overlay horizon, causing the scheduler to incorrectly consider the queue empty and miss the remaining invocation.

VQueue entries now also retain their pinned deployment when invocations are migrated or restarted as new. The sys_invocation_status, sys_vqueues, and sys_vqueue_entry_status tables now consistently report deployment usage, improving deployment draining checks.

No configuration or migration changes are required.

🌐 Safer HTTP Error Handling

HTTP ingress error responses now identify whether an error was generated by Restate's ingress or is the durable terminal outcome of an invocation.

Clients can inspect:

  • The new x-restate-error-source response header
  • The matching source field in the JSON error body
  • The numeric HTTP status in the new code field for ingress-generated errors

The source is either ingress or invocation, allowing clients to distinguish transient Restate failures from durable invocation failures and make safer retry decisions.

Several ingress-generated status codes have also been aligned with HTTP semantics:

  • Internal dispatcher failures now return 503 Service Unavailable.
  • Unsupported invocation output requests now return 400 Bad Request.
  • The unavailable OpenAPI route now returns 404 Not Found.

🚦 Stable Failure Detection During Startup

The failure detector now resets its gossip timing when a node becomes ready.

Time spent starting node roles is no longer counted as missed gossip intervals. This prevents starting nodes from incorrectly considering healthy peers dead or reporting themselves as isolated.

No configuration changes are required.

💾 Fewer Partition-Store Write Stalls

Partition stores now tolerate more RocksDB compaction debt before slowing or stopping writes.

This improves write availability for deployments with large partitions when compaction falls behind. It may allow greater temporary disk usage and reduced read performance until compaction catches up.

🛠️ Additional Improvements

The restate invocations pause command now selects suspended invocations in addition to running and backing-off invocations.

📖 Full Release Notes → (https://github.com/restatedev/restate/blob/main/release-notes/v1.7.4.md)

Install

Pull the Docker images

docker pull docker.restate.dev/restatedev/restate:1.7.4
docker pull docker.restate.dev/restatedev/restate-cli:1.7.4

Install prebuilt binaries via Homebrew

brew install restatedev/tap/restate-server
brew install restatedev/tap/restate
brew install restatedev/tap/restatectl

Install prebuilt binaries into your npm project

npm install @restatedev/restate-server@1.7.4
npm install @restatedev/restate@1.7.4
npm install @restatedev/restatectl@1.7.4

Download binary archives

File Platform Checksum
restate-server-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
restate-server-x86_64-apple-darwin.tar.xz Intel macOS checksum
restate-server-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
restate-server-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum
restate-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
restate-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
restate-cli-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
restate-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum
restatectl-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
restatectl-x86_64-apple-darwin.tar.xz Intel macOS checksum
restatectl-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
restatectl-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum