v2.14.7
nats-io/nats-serverv2.14.7Sep 15, 2026by github-actions[bot]
Upgrading?
AI Summary
This release upgrades the Go runtime to version 1.26.8 and introduces compatibility for the v2.15 desired state metalayer to support safe upgrades and downgrades. It includes performance optimizations such as the replacement of random number generators and reduced lock contention, alongside a large number of bug fixes to stabilize JetStream operations and resolve data races.
Key Highlights
- Added compatibility for the v2.15 desired state metalayer to enable safe upgrades and downgrades.
- Upgraded Go version to 1.26.8.
- Replaced `math/rand` and `fastrand` packages with `math/rand/v2` for performance improvements.
- Fixed critical data races in JetStream deduplication tracking and filestore operations.
- Improved performance by reducing lock contention for event IDs and closed connections.
New Features
- JetStream compatibility for the new desired state metalayer introduced in v2.15.
Full Release Notes
## Changelog
Refer to the [2.14 Upgrade Guide](https://docs.nats.io/release-notes/whats_new/whats_new_214) for backwards compatibility notes with 2.12.x. Please note that the 2.13.x version was skipped.
### Go Version
- 1.26.8 (#8551)
### Dependencies
- github.com/antithesishq/antithesis-sdk-go v0.8.0-default-no-op (#8562)
- github.com/klauspost/compress v1.20.0 (#8562)
- golang.org/x/crypto v0.57.0 (#8597)
- golang.org/x/sys v0.48.0 (#8597)
- golang.org/x/time v0.16.0 (#8597)
### Added
JetStream
- Compatibility for the new desired state metalayer, introduced in v2.15, to support safe upgrades and downgrades (#8554)
### Improved
General
- The `fastrand` and `math/rand` packages have been replaced with `math/rand/v2` (#8538, #8557)
- Reduced lock contention that could arise from tracking event IDs or closed connections (#8533)
JetStream
- When syncing deletes from a snapshot, block removals are now aggregated, reducing pending calculations (#8545)
- Message size checks are now performed before more expensive header checks (#8561)
- Pending calculations are now considerably faster when the max messages per subject limit is 1 (#8567)
### Fixed
General
- The `{{left}}` and `{{right}}` mapping functions now work correctly in account mappings and source/mirror transforms (#8568)
JetStream
- A potential underflow when calculating deletes in skip messages has been fixed (#8546)
- Fixed an issue where catchup signals to the metalayer are blocked, which could stall stream or cluster management operations until the node is restarted (#8555)
- Consumer removal is now handled correctly after a recreate during metalayer recovery at startup (#8556)
- Fixed a potential panic that could happen when filestore block caches were released during message removal (#8548)
- The last dedupe message ID is now restored correctly if the last message was outside of the window after restart (#8564)
- An unreachable send snapshot condition has been removed from the stream monitor (#8565)
- Pull request expiry is now counted as activity when `inactive_threshold` is set (#8575)
- Purges and roll-ups on multi-filter subject consumers will no longer advance past unrelated subjects (#8572)
- Filestore compression header checking is now extended to check for compatible compression values and for the presence of correct or incorrect first record checksums, avoiding collisions at the beginning of a message block (#8581)
- JetStream usage from peer-removed nodes is now removed from the remaining cluster node accounting correctly (#8570)
- Fixed a data race between deduplication tracking and stream config updates (#8598)
- Fixed a potential nil consumer info when responding to consumer reset requests (#8598)
- Stream catchups will no longer run for removed or re-synced peers (#8598)
- Fixed a race condition that could leave ghost consumer assignments when deleting consumers (#8598)
- Pausing a consumer with pending changes no longer cancels out the in-flight assignment (#8598)
- Stepping down a consumer leader with pending changes no longer fails (#8598)
- Switching a stream to interest retention policy with no consumers now correctly cleans up messages with no interest (#8598)
- Fixed an issue where removed consumers were incorrectly matched without checking the group name (#8598)
- A number of stream and consumer endpoints will no longer report the wrong state based on in-flight proposals (#8598)
### Complete Changes
https://github.com/nats-io/nats-server/compare/v2.14.6...v2.14.7Related Repositories
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
The world’s fastest framework for building websites.
:cherry_blossom: A command-line fuzzy finder