A previously resolved issue appears to have resurfaced in Spring Boot 3.4.6 and 3.5.0.

When resolving configuration properties, ConfigDataEnvironmentContributorPlaceholdersResolver invokes String.valueOf() directly, rather than relying on the registered ConversionService. This bypasses any custom converters and leads to incorrect behavior for types that depend on specific conversion logic — for example, com.google.protobuf.ByteString, which should use toStringUtf8() instead of the default toString().

This behavior mirrors the issue originally reported in spring-projects/spring-boot#39944 (originally identified in GoogleCloudPlatform/spring-cloud-gcp#2690), and was previously known to affect Spring Boot versions 2.4.x through 3.2.x.

It is also reported in the spring-cloud-gcp repo under https://github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/3821 for investigation.

Comment From: bclozel

Isn't this rather a Spring Framework bug as raised in https://github.com/spring-projects/spring-framework/pull/34936 ?

Can you reproduce this issue with the latest Framework SNAPSHOTs still?

Comment From: bushwakko

This seems to be fixed here: https://github.com/spring-projects/spring-framework/pull/34936 and going into the 6.2.8 release due June 12th.

Maybe bumping to 6.2.8 should be included in the 3.5.1 milestone? https://github.com/spring-projects/spring-boot/milestone/389

Comment From: bclozel

@bushwakko I'm waiting for @adnan-selimovic 's feedback before considering this as a duplicate.

Maybe bumping to 6.2.8 should be included in the 3.5.1 milestone?

We'll create the issue with a semi-automated process. We'll upgrade in due time as usual with our release train.

Comment From: kmandeville

Will this be backported and fixed in Spring Boot 3.4.6 and not just 3.5.0?

Comment From: bclozel

See #45768 and #45781 for the Framework upgrades.

Still waiting for @adnan-selimovic feedback. We only have a couple of days before the Framework release.