-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
Describe the bug
We noticed that Quarkus 3.23.3 introduced issues with reading configuration from enviromment variables under certain circumstances.
In short: it seems to affect @ConfigMapping
annotated interfaces containing maps. Environment variables that should configure the interface are not picked up if the project also contains the Quarkus Vault extension.
The workaround is to either remove the Vault extension or to downgrade smallrye-config
to version 3.13.0 (Quarkus 3.23.3 uses 3.13.1), so both components somehow don't play nice with each other.
See the reproducer for more information.
Expected behavior
The expected behavior is that Quarkus picks up the environment variables and maps them properly to the @ConfigMapping
annotated interface. so that your app can access the configuration.
Actual behavior
Environment variables are not being picked up leaving the @ConfigMapping
annotated interface unpopulated leading to missing configuration.
How to Reproduce?
Of course I can provide a reproducer with detailed instructions here: https://github.com/wiebeck/quarkus-3.23.3-config-mapping-bug
Output of uname -a
or ver
Linux (container image), Mac
Output of java -version
21
Quarkus version or git rev
3.23.3
Build tool (ie. output of mvnw --version
or gradlew --version
)
Gradle 8.31 (irrelevant)
Additional information
This issue appeared first in Quarkus 3.23.3 and is probably related to smallrye-config 3.13.1 and maybe quarkus-vault. I personally wouldn't rule out that other Quarkus extensions also affect this behavior.