Spring for Apache Kafka 4.1.0-M2, 4.0.4, and 3.3.14 Available

Releases | Soby Chacko | March 17, 2026 | 2 min read | ...

On behalf of the team and everyone who contributed, we are pleased to announce that Spring for Apache Kafka 4.1.0-M2, 4.0.4, and 3.3.14 have been released. We extend our gratitude to all contributors who made these releases possible.


What's New in 4.1.0-M2

Apache Kafka Client 4.2.0

Spring for Apache Kafka 4.1.0-M2 is the first release built on Apache Kafka client 4.2.0. This upgrade aligns the framework with the latest Kafka client and broker features, including improvements to the share consumer (KIP-932: Queues for Kafka) support and related APIs.

Share Consumer Enhancements

  • RENEW acknowledgment (#4322): ShareAcknowledgment now supports renew(), exposing Kafka’s AcknowledgeType.RENEW (KIP-1222).

Use it when processing may exceed group.share.record.lock.duration.ms. Call renew() to extend the acquisition lock without completing the record; a terminal acknowledgment (acknowledge(), release(), or reject()) is still required once when processing finishes.

  • Error handling for the share consumer (#4321): The share consumer container now has configurable error handling at both poll level and listener level.

This includes proper handling of RecordDeserializationException and CorruptRecordException at poll time, and a pluggable recovery strategy for listener-level failures, bringing behavior closer to the traditional container’s CommonErrorHandler model.

Other Features and Fixes

  • RetryableTopic defaults (#3706): The default behavior of @RetryableTopic and RetryTopicConfigurationBuilder is now aligned with the documentation.

  • DefaultErrorHandler and suspend methods (#3618): DefaultErrorHandler now works correctly with Kotlin suspend listener methods.

  • Bug fixes:

    • Addressed listener pause when using async acknowledgments (#4332)
    • Observation leaks for filtered messages that could fill memory (#4306)
    • assertTopic validation with meta-annotated @KafkaListener and programmatic topic resolution (#4303)
    • Error handler retries for listeners that return a Mono (#4198).

4.0.4 and 3.3.14 (Patch Releases)

Both patch releases include the same set of bug fixes, backported from 4.1.0-M2:

  • Listener with async acks pauses indefinitely (#4344 / #4343) — the container no longer pauses indefinitely when using async acknowledgments.
  • Observations for filtered messages are leaked (#4336 / #4335) — resolved a memory leak where observations for filtered messages were not completed.
  • assertTopic validation and meta-annotated @KafkaListener (#4311 / #4312) — fixed validation when using meta-annotated @KafkaListener with programmatic topic resolution.

Release Notes


Spring Boot Integration

Spring Kafka 3.3.14 will be integrated into Spring Boot 3.5.12. Spring Kafka 4.0.4 will be integrated into Spring Boot 4.0.4. Spring Kafka 4.1.0-M2 will be integrated into Spring Boot 4.1.0-M3.


Community Feedback

Feedback and issue reports are welcome on GitHub.

GitHub | Issues | Documentation | Stack Overflow

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all