# Spring Boot v4.1.1 - Product: Spring Boot (https://whatsnew.fyi/product/spring-boot) - Vendor: Broadcom - Date: 2026-08-20 - Version: v4.1.1 - Original notes: https://github.com/spring-projects/spring-boot/releases/tag/v4.1.1 - Permalink: https://whatsnew.fyi/product/spring-boot/releases/v4.1.1 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- ##### :warning: Attention Required - Spring Boot's Gradle plugin no longer automatically configures gRPC when the Protobuf plugin is applied. This behavior caused problems for those using Protobuf without gRPC. To opt in to the configuration of gRPC, configure the `protobuf` extension with the `grpc` plugin using an empty block. The Spring Boot Gradle plugin will then automatically configure the use of `protoc-gen-grpc-java` as before. [#50822](https://github.com/spring-projects/spring-boot/issues/50822) ##### :lady_beetle: Bug Fixes - Kafka consumer-specific security protocol is not taken into account [#51369](https://github.com/spring-projects/spring-boot/issues/51369) - Structured logging: a failed JSON encode corrupts the next log event written on the same thread [#51156](https://github.com/spring-projects/spring-boot/pull/51156) - Micrometer registries pin the application context [#51135](https://github.com/spring-projects/spring-boot/issues/51135) - Temporary file is not deleted when ExportedImageTar construction fails [#51132](https://github.com/spring-projects/spring-boot/issues/51132) - Metadata annotation processor ignores getter-level `@NestedConfigurationProperty` for records [#51098](https://github.com/spring-projects/spring-boot/issues/51098) - spring-boot-h2-console pulls servlet-api as transitive dependency [#51095](https://github.com/spring-projects/spring-boot/issues/51095) - PropertiesLauncher does not log nested archive paths [#51089](https://github.com/spring-projects/spring-boot/issues/51089) - Methods that return the result of Map#remove are not declared with a `@Nullable` return type [#51087](https://github.com/spring-projects/spring-boot/issues/51087) - NativeImageResourceProvider flattens Flyway migration paths in subdirectories [#50964](https://github.com/spring-projects/spring-boot/issues/50964) - Fix ordering of Kotlinx Serialization CodecCustomizer [#50961](https://github.com/spring-projects/spring-boot/issues/50961) - JarFile is not closed when finding main class from archive [#50959](https://github.com/spring-projects/spring-boot/issues/50959) - Application-managed JUL bridge handler should only be removed if installed [#50950](https://github.com/spring-projects/spring-boot/issues/50950) - CloudFoundry reactive auto-configuration should not require a WebClient.Builder bean to be defined [#50944](https://github.com/spring-projects/spring-boot/issues/50944) - Context refresh fails on reactive Cloud Foundry when using Actuator without spring-boot-health [#50942](https://github.com/spring-projects/spring-boot/issues/50942) - Resources are not cleaned up when resolving an image that is not yet present in the builder [#50941](https://github.com/spring-projects/spring-boot/issues/50941) - GraphQlWebMvcAutoConfiguration should apply customizers in order [#50914](https://github.com/spring-projects/spring-boot/issues/50914) - Auto-configured RedisMessageListenerContainer does not use virtual threads when spring.threads.virtual.enabled is true [#50884](https://github.com/spring-projects/spring-boot/issues/50884) - Context refresh fails when using Actuator on Jersey without spring-boot-health [#50872](https://github.com/spring-projects/spring-boot/issues/50872) - Context refresh fails on Cloud Foundry when using Actuator without spring-boot-health [#50871](https://github.com/spring-projects/spring-boot/issues/50871) - IllegalStateException when binding properties to a `@Validated` class that contains a map whose value type is a wildcard [#50856](https://github.com/spring-projects/spring-boot/issues/50856) - High number of connections due to Mongo health indicator [#50852](https://github.com/spring-projects/spring-boot/issues/50852) - Inconsistent handling of empty string values of spring.security.oauth2.resourceserver.jwt issuer-uri and jwk-set-uri [#50849](https://github.com/spring-projects/spring-boot/issues/50849) - Return type nullability of ApplicationContextAssert's getB _[Truncated at 4000 characters — full notes: https://github.com/spring-projects/spring-boot/releases/tag/v4.1.1]_