Search code examples
spring-bootspring-cloud

Component scan for configuration class could not be used with conditions in REGISTER_BEAN


Getting below exception, when starting up my spring boot application, with spring boot version 3.4.0

Caused by: org.springframework.context.ApplicationContextException: Component scan for configuration class [org.springframework.cloud.function.context.config.ContextFunctionCatalogAutoConfiguration$PlainFunctionScanConfiguration] could not be used with conditions in REGISTER_BEAN phase: [org.springframework.boot.autoconfigure.condition.OnBeanCondition@3f8e62b0]
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:327) ~[spring-context-6.2.0.jar:6.2.0]
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:267) ~[spring-context-6.2.0.jar:6.2.0]
    at org.springframework.context.annotation.ConfigurationClassParser.processMemberClasses(ConfigurationClassParser.java:413) ~[spring-context-6.2.0.jar:6.2.0]
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:294) ~[spring-context-6.2.0.jar:6.2.0]
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:267) ~[spring-context-6.2.0.jar:6.2.0]
    at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:603) ~[spring-context-6.2.0.jar:6.2.0]

I could solve the issue by updating the spring-cloud-dependencies version from 2023.0.1 to 2024.0.0.


Solution

  • Spring Boot 3.4.0 isn't compatible with Spring Cloud 2023.0.x. This is also shown in the compatibility matrix in the Spring Cloud documentation. You will need at least version 2024.0.0 (as you already noticed).

    Spring Cloud versions are tied to specific Spring Boot versions for compatibility. When you want to upgrade Spring Boot and are using Spring Cloud you need to check the compatibility matrix.