Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Release 3.20.0 (2026-05-07)

Support resuming from binary caches that don't support ranged requests

Previously, Nix would just fail a download if something happened in the TCP or TLS layer, meaning a flaky proxy could fail to download a store path and fall back to building, when a retry might have not been flaky.

Now, Determinate Nix will retry these failed substitutions, so you don't have to waste time building something that was cached but some proxy decided to cut you off early.

PR: DeterminateSystems/nix-src#445

Add a session ID to JSON log messages

Determinate Nix now includes a freeform string session ID (sid) in its JSON log messages, which allows a anything that consumes these log messages to see which messages belong to the same session.

By default, every Nix command invocation is its own session, but you can use the session-id setting to give a group of invocations the same session (otherwise, a random UUIDv7 like 019e037b-f603-7443-8071-cfd8585ec8c6 is set as the session ID).

PR: DeterminateSystems/nix-src#440

Full Changelog: v3.19.1...v3.20.0