> ## Documentation Index
> Fetch the complete documentation index at: https://docs.streamnative.io/llms.txt
> Use this file to discover all available pages before exploring further.

# V4.0.12.7

# StreamNative Weekly Release Notes v4.0.12.7

## Download

### Distributions

* [https://github.com/streamnative/pulsar/releases/tag/v4.0.12.7](https://github.com/streamnative/pulsar/releases/tag/v4.0.12.7)

### Packages

* [Maven Central](https://search.maven.org/artifact/io.streamnative/pulsar/4.0.12.7/pom)

### Images

* [sn-platform](https://hub.docker.com/layers/streamnative/sn-platform/4.0.12.7/images/sha256-7f689377f6f8901ecbaed740d71f94cf2a725b06014e796fcfbe9d07b2a5d000)

* [sn-platform-slim](https://hub.docker.com/layers/streamnative/sn-platform-slim/4.0.12.7/images/sha256-fd5c6c8cf8c43870a551d2cc1a3e996c6a416460bee5cdb044cd1bc96a9ecc6e)

* [private-cloud](https://hub.docker.com/layers/streamnative/private-cloud/4.0.12.7/images/sha256-fd5c6c8cf8c43870a551d2cc1a3e996c6a416460bee5cdb044cd1bc96a9ecc6e)

## General Changes

### Apache Pulsar

([#26509](https://github.com/apache/pulsar/pull/26509)) \[fix]\[ml] Preserve ledger properties when recovering the last ledger on open

([#26227](https://github.com/apache/pulsar/pull/26227)) \[fix]\[ml] Preserve ledger properties when closing ledger

([#26335](https://github.com/apache/pulsar/pull/26335)) \[fix]\[broker] Cancel queued transaction snapshot recovery on topic close

([#26491](https://github.com/apache/pulsar/pull/26491)) \[improve]\[cli] Default the pulsar-perf client memory limit to half of the JVM max direct memory

([#26476](https://github.com/apache/pulsar/pull/26476)) \[fix]\[client] Release the reserved memory only once when failing a send in a terminal state

([#26473](https://github.com/apache/pulsar/pull/26473)) \[fix]\[admin] Reject empty cluster migration URL: fix inverted ClusterUrl.isEmpty()

([#26505](https://github.com/apache/pulsar/pull/26505)) \[fix]\[broker] Prevent automatic TTL expiry from skipping reader messages

([#26497](https://github.com/apache/pulsar/pull/26497)) \[fix]\[broker] Fix NPE in ManagedLedgerInterceptorImpl when AppendIndexMetadataInterceptor isn't configured

([#26466](https://github.com/apache/pulsar/pull/26466)) \[improve]\[cli] pulsar-perf: cut latency histogram memory \~100x, fix range units and static stats state

([#26465](https://github.com/apache/pulsar/pull/26465)) \[fix]\[cli] Apply PULSAR\_MEM and PULSAR\_GC in bin/pulsar-perf

([#26467](https://github.com/apache/pulsar/pull/26467)) \[fix]\[cli] pulsar-perf: register subcommand classes with picocli instead of instances

([#26464](https://github.com/apache/pulsar/pull/26464)) \[improve]\[broker] Copy small entries into a flat buffer when prepending broker entry metadata

([#26462](https://github.com/apache/pulsar/pull/26462)) \[improve]\[broker] Avoid iterator allocation in BrokerInterceptors hot paths and restore configured ordering

### KoP

\[fix] Fix getBillingBrokerInterceptor method

\[fix] Use metadata cache for ModularLoadManagerLookupService

### Cloud Pulsar Plugins

51e03066 \[Interceptors] Align branch-4.0 with broker interceptor list API

f3b79c2a \[Interceptors] Fix broker interceptor tests for list API

## Security Fixes
