# NATS v2.14.6-RC.1 — Release v2.14.6-RC.1 - Product: NATS (https://whatsnew.fyi/product/nats) - Vendor: Synadia - Date: 2026-08-25 - Version: v2.14.6-RC.1 - Original notes: https://github.com/nats-io/nats-server/releases/tag/v2.14.6-RC.1 - Permalink: https://whatsnew.fyi/product/nats/releases/v2.14.6-rc.1 - Labels: Pre-release What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Removal from service import response maps is now constant-time - **changed** — The client code no longer resets the deadline more times than necessary when flushing client buffers - **changed** — The client write buffers are now freed correctly when the working buffer exceeds a rational size - **changed** — Stream reads are now isolated with a separate lock, which improves the performance of direct gets - **changed** — Improved the performance of looking up matching sequence numbers for multi-subject gets - **fixed** — WebSocket client buffers are recycled more aggressively when reallocating into larger buffers - **fixed** — The filestore block sync no longer incorrectly skips blocks that were compacted during the same pass - **fixed** — The filestore block sync now performs a single directory sync upon completion rather than once per compacted block - **fixed** — The filestore I/O semaphore now covers block sync operations - **fixed** — Stream config updates with replicas greater than 1 are now rejected on non-clustered systems - **fixed** — Fixed some issues that could prevent stream snapshots from taking place on a clean shutdown - **fixed** — The filestore inline compaction no longer ignores sync_interval: always - **fixed** — The stream created time is now preserved after recovery on a standalone server - **fixed** — Fixed a data race that could apply when accessing the batch ID - **fixed** — Fixed a data race when reading the consumer direct or sourcing status - **fixed** — Prevent the consumer direct or sourcing status from being changed with a consumer update - **fixed** — Fixed an issue where the server could fail to distinguish consumer tiers when enforcing limits - **fixed** — Fixed a flow control problem where replicated consumers could get stuck after a leader change - **fixed** — Fixed various consumer create issues that could destroy the state of an existing consumer with the same name - **fixed** — Internal message delete proposals are no longer counted in the JS API statistics ##### 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.7 ###### Improved General - Removal from service import response maps is now constant-time (#8463) - The client code no longer resets the deadline more times than necessary when flushing client buffers (#8513) - The client write buffers are now freed correctly when the working buffer exceeds a rational size (#8515) JetStream - Stream reads are now isolated with a separate lock, which improves the performance of direct gets (#8486) - Improved the performance of looking up matching sequence numbers for multi-subject gets (#8486) ###### Fixed General - WebSocket client buffers are recycled more aggressively when reallocating into larger buffers (#8518) JetStream - The filestore block sync no longer incorrectly skips blocks that were compacted during the same pass (#8456) - The filestore block sync now performs a single directory sync upon completion rather than once per compacted block (#8461) - The filestore I/O semaphore now covers block sync operations (#8462) - Stream config updates with replicas greater than 1 are now rejected on non-clustered systems (#8464) - Fixed some issues that could prevent stream snapshots from taking place on a clean shutdown (#8465) - The filestore inline compaction no longer ignores `sync_interval: always` (#8475) - The stream created time is now preserved after recovery on a standalone server (#8471, contributed by @Green7) - Fixed a data race that could apply when accessing the batch ID (#8369) - Fixed a data race when reading the consumer direct or sourcing status (#8478, contributed by @nberlee) - Prevent the consumer direct or sourcing status from being changed with a consumer update (#8478, contributed by @nberlee) - Fixed an issue where the server could fail to distinguish consumer tiers when enforcing limits (#8484) - Fixed a flow control problem where replicated consumers could get stuck after a leader change (#8488) - Fixed various consumer create issues that could destroy the state of an existing consumer with the same name (#8491) - Internal message delete proposals are no longer counted in the JS API statistics (#8502) - Dynamic filestore reservations no longer incorrectly shrink based on used storage after restarts (#8503) ###### Complete Changes https://github.com/nats-io/nats-server/compare/v2.14.5...v2.14.6-RC.1