Release Notes - Kafka - Version 4.0.1
Below is a summary of the JIRA issues addressed in the 4.0.1
release of Kafka. For full documentation of the release, a guide
to get started, and information about the project, see the
Kafka project site.
Note about upgrades: Please carefully review the
upgrade documentation for this release thoroughly before upgrading
your cluster. The upgrade notes discuss any critical information about
incompatibilities and breaking changes, performance changes, and any
other changes that might impact your production deployment of Kafka.
The documentation for the most recent release can be found at
https://kafka.apache.org/documentation.html.
Improvement
[KAFKA-806] - Index may not always observe log.index.interval.bytes
Bug
[KAFKA-15931] - Cached transaction index gets closed if tiered storage read is interrupted
[KAFKA-16407] - ForeignKey INNER join ignores FK change when its previous value is null
[KAFKA-16434] - ForeignKey INNER join does not unset join result when FK becomes null
[KAFKA-18067] - Kafka Streams can leak Producer client under EOS
[KAFKA-18345] - Investigate if binaryExponentialElectionBackoffMs can be removed or improved
[KAFKA-18687] - New group coordinator triggers assignment recalculation on consumer group upgrade due to static member replacement
[KAFKA-18688] - Uniform homogeneous assignment is not always stable
[KAFKA-18713] - Kafka Streams Left-Join not always emitting the last value
[KAFKA-18723] - KRaft must handle corrupted records in the fetch response
[KAFKA-18940] - Fix uncleanLeaderElection metric due to ELR election
[KAFKA-18962] - StateRestoreListener onBatchRestored method is called with the totalRestored on GlobalStateStore reprocess
[KAFKA-18991] - AbstractFetcherThread should verify the current leader epoch in the fetch request matches the leader epoch in the fetch state
[KAFKA-19054] - StreamThread exception handling with SHUTDOWN_APPLICATION may trigger a tight loop with MANY logs
[KAFKA-19071] - Incorrect documentation for remote.storage.enable
[KAFKA-19128] - Kafka Streams should not get offsets when close dirty
[KAFKA-19131] - Exception thrown while updating the RemoteLogReader threads
[KAFKA-19147] - ConsumerGroupHeartbeat API leaks topic id and partition count of unauthorized topics
[KAFKA-19160] - Fetching stable offsets is very slow with a large number of partition and open transactions
[KAFKA-19163] - New group coordinator can incorrectly delete groups with pending transactional offsets
[KAFKA-19164] - New group coordinator won't delete groups with previously pending transactional offsets that were deleted
[KAFKA-19166] - Release tags are orphaned
[KAFKA-19171] - Kafka Streams crashes with UnsupportedOperationException
[KAFKA-19192] - Old bootstrap.metadata files cause problems with post-KAFKA-18601 servers
[KAFKA-19195] - In group describe operations all group IDs are forwarded to all group coordinator shards.
[KAFKA-19208] - KStream-GlobalKTable join should not drop left-null-key record
[KAFKA-19221] - IOException on log segment close shouldn't be ignored
[KAFKA-19242] - Fix commit bugs caused by race condition during rebalancing.
[KAFKA-19274] - Group Coordinator Shards are not unloaded when __consumer_offsets topic is deleted
[KAFKA-19275] - client-state and thread-state metrics are always ""Unavailable"
[KAFKA-19294] - Fix BrokerLifecycleManager RPC timeouts
[KAFKA-19334] - MetadataShell bypasses file lock unexpectedly due to lock file deletion
[KAFKA-19359] - [8.8] [CVE-2025-48734] [commons-beanutils] [1.9.4]
[KAFKA-19367] - InitProducerId with TV2 double-increments epoch if ongoing transaction is aborted
[KAFKA-19383] - A duplicate topic record can be created when applying ClearElrRecord.
[KAFKA-19398] - Error getting oldest-iterator-open-since-ms causes NPE in micrometer
[KAFKA-19407] - OffsetsOutOfOrderException on followers due to the race condition in the leader
[KAFKA-19411] - Delete ACLs records can exceed max records per user op
[KAFKA-19427] - The __consumer_offsets topic applies the broker configuration message.max.bytes, which may cause the coordinator broker to allocate too much memory and cause OOM
[KAFKA-19444] - SASL GSSAPI not working with librdkafka and AK 4.x
[KAFKA-19501] - System tests should use 17-bullseye instead of 17-buster
[KAFKA-19504] - AdminClient creates and adds second metrics reporter
[KAFKA-19520] - Bump Commons-Lang for CVE-2025-48924
[KAFKA-19529] - State updater does not always seem to remove all metrics
[KAFKA-19576] - Fix typo in state-change log filename after rotate
[KAFKA-19668] - processValues() must be declared as value-changing operation
Test
[KAFKA-18035] - TransactionsTest testBumpTransactionalEpochWithTV2Disabled failed on trunk
Sub-task
[KAFKA-18656] - Backport KAFKA-18597 to 4.0
[KAFKA-18984] - failed to reset interval.ms by using kafka-client-metrics.sh