v2.12.10

janhq/janv2.12.10Jun 2, 2026by github-actions[bot]

AI Summary

A maintenance release for the 2.12 branch updating the Go version to 1.25.10, addressing similar critical race conditions and protocol corruption issues found in the 2.14 series.

Key Highlights

  • Updated Go version to 1.25.10.
  • Fixed race condition when handling subscription interest over routes.
  • Resolved potential protocol-level corruption from rewriting ACK subjects.
  • Fixed filestore CPU usage with high subject counts.

Full Release Notes

## Changelog

Refer to the [2.12 Upgrade Guide](https://docs.nats.io/release-notes/whats_new/whats_new_212) for backwards compatibility notes with 2.11.x.

### Go Version

- 1.25.10

### Dependencies

- golang.org/x/crypto v0.52.0
- golang.org/x/sys v0.45.0
- github.com/nats-io/jwt/v2 v2.8.2
- github.com/nats-io/nkeys v0.4.16

### Improved

General

- The client ID is now available through the embedded `ClientAuthentication` API (#8217)

### Fixed

General

- A race condition when handling subscription interest over routes has been fixed (#8235)
- Potential protocol-level corruption from rewriting `$JS.ACK` subjects has been fixed (#8242)
- Potential protocol-level corruption from buffer misuse in compressed WebSocket clients has been fixed (#8244)
- The `/accstatz` monitoring endpoint no longer omits accounts with only leaf connections (#8252)

JetStream

- Fixed a case where Raft peers were not correctly tracked after an inactivity stall during catchup (#8226)
- Quorum needed is now calculated correctly when bootstrapping the metalayer when gateway URLs resolve to multiple IP addresses (#8238)
- The filestore no longer performs a block skip check on streams with extremely high subject counts, as it could result in runaway CPU usage (#8227)
- Purge operations on both file and memory stores are now more consistent with each other (#8241)
- Counter streams and message schedules now have configuration constraints applied to prevent incorrect usage patterns (#8240)
- Improved stream and consumer scale down behaviour consistency (#8253)
- Fixed an issue where the per-subject state last block was not stored correctly with a max messages per subject limit of 1 (#8254)
- Fixed a drift that could occur in the peer sets after a peer remove of an online node (#8258)

### Complete Changes
 
https://github.com/nats-io/nats-server/compare/v2.12.9...v2.12.10