Skip to content

Environment Variable Configuration Issues since Quarkus 3.23.3 #48347

@wiebeck

Description

@wiebeck

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions