> ## 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.1.0.3

# StreamNative Weekly Release Notes v4.1.0.3

## Download

### Distributions

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

### Packages

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

### Images

* [sn-platform](https://hub.docker.com/layers/streamnative/sn-platform/4.1.0.3/images/sha256-6d1394bf412ab6bc19d49ab066c02db22010298c99ad250d8a9e840631ad752a)

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

* [private-cloud](https://hub.docker.com/layers/streamnative/private-cloud/4.1.0.3/images/sha256-81eed97801d1f0fbcea315058637d36d8769bb142d62a325c3cf3efdbec5e98d)

## General Changes

### Apache Pulsar

([#24779](https://github.com/apache/pulsar/pull/24779)) Bump org.apache.zookeeper:zookeeper from 3.9.3 to 3.9.4

([#24596](https://github.com/apache/pulsar/pull/24596)) \[improve]\[broker]Call scheduleAtFixedRateNonConcurrently for scheduled tasks, instead of scheduleAtFixedRate

([#23386](https://github.com/apache/pulsar/pull/23386)) \[improve]\[broker] PIP-402: Optionally prevent role/originalPrincipal logging

([#24772](https://github.com/apache/pulsar/pull/24772)) \[fix]\[misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking

([#24753](https://github.com/apache/pulsar/pull/24753)) \[fix]\[ml]Fix EOFException after enabled topics offloading

([#24769](https://github.com/apache/pulsar/pull/24769)) \[fix]\[test] Flaky-test: BrokerServiceTest.testShutDownWithMaxConcurrentUnload

([#24764](https://github.com/apache/pulsar/pull/24764)) \[improve]\[build] Upgrade Mockito, AssertJ and ByteBuddy to fully support JDK25

([#24761](https://github.com/apache/pulsar/pull/24761)) \[fix]\[client] Exclude io.prometheus:simpleclient\_caffeine from client-side dependencies

([#24763](https://github.com/apache/pulsar/pull/24763)) \[improve]\[build] Upgrade Lombok to 1.18.42 to fully support JDK25

([#23634](https://github.com/apache/pulsar/pull/23634)) \[improve]\[broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable

([#24738](https://github.com/apache/pulsar/pull/24738)) \[fix]\[broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry.

([#24768](https://github.com/apache/pulsar/pull/24768)) \[improve]\[build] Upgrade SpotBugs to a version that supports JDK25

([#24767](https://github.com/apache/pulsar/pull/24767)) \[fix]\[ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven extension

([#24741](https://github.com/apache/pulsar/pull/24741)) \[fix]\[broker] Prevent unexpected recycle failure in dispatcher's read callback

### AoP

Fix configuration potential NPE in test

### KoP

Use new CompactedTopicUtils.asyncReadCompactedEntries API from apache/pulsar#24725

### StreamNative Pulsar Plugins

\[feat]\[topic-compaction-service] Implement clean expired  message during compaction

Fix gcs-connector cve

### Function Mesh Worker Service

Reject request when agent name is too long or sessionId is not valid

feat: support multiple mcp servers

### StreamNative Tiered storage

Yong/test branch 4.1

### StreamNative Unified RBAC

feat: treat NotFound exception as success for deleting

feat: upgrade sdk-go version to v0.14.0

Add conditions for Catalog, CC and CE

feat: support extract variable claim from token

### StreamNative Ursa storage

Fix catalog instance not shared

Move the iceberg table creation params to a common place

Fix the integration test mount jar issue.

fix: mask sensitive properties in CatalogKey toString to avoid credential leaks in logs

## Security Fixes
