{"record":{"id":"9cc18477ab492326","repo":"quarkusio/quarkus","slug":"no-eureka-configuration-has-been-provided","errorCode":null,"errorMessage":"No Eureka configuration has been provided","messagePattern":"No Eureka configuration has been provided","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/eureka/DiscoveryService.java","lineNumber":60,"sourceCode":"            } catch (Exception e) {\n                log.debug(\"Timed out while waiting for Spring Cloud Config Server URL for service '\" + serviceId + \"'\", e);\n            }\n        }\n\n        log.debug(\"Fallback Attempting to discover Spring Cloud Config Server URL for service '\" + serviceId\n                + \"' using the default URL: \" + defaultServiceUrl);\n        try {\n            return getHomeUrl(defaultServiceUrl, serviceId);\n        } catch (Exception e) {\n            log.debug(\"Timed out while waiting for Spring Cloud Config Server URL for service '\" + serviceId + \"'\", e);\n        }\n\n        throw new RuntimeException(\"Unable to discover Spring Cloud Config Server URL for service '\" + serviceId + \"'\");\n    }\n\n    private void validate(SpringCloudConfigClientConfig.DiscoveryConfig discoveryConfig) {\n        if (discoveryConfig.eurekaConfig().isEmpty()) {\n            throw new IllegalArgumentException(\"No Eureka configuration has been provided\");\n        }\n        if (discoveryConfig.eurekaConfig().get().serviceUrl().isEmpty()) {\n            throw new IllegalArgumentException(\"No service URLs have been configured for service\");\n        }\n        if (discoveryConfig.serviceId().isEmpty()) {\n            throw new IllegalArgumentException(\"No service ID has been configured for service\");\n        }\n    }\n\n    private String getHomeUrl(String defaultServiceUrl, String serviceId) {\n        JsonObject instance = eurekaClient.fetchInstances(defaultServiceUrl, serviceId);\n        return instance.getString(\"homePageUrl\");\n    }\n\n}\n","sourceCodeStart":42,"sourceCodeEnd":76,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/eureka/DiscoveryService.java#L42-L76","documentation":"DiscoveryService.validate() is called from discover() and requires an Eureka discovery configuration. This IllegalArgumentException is thrown when the quarkus.spring-cloud-config.discovery.eureka section is entirely absent while discovery-based lookup of the Config Server was requested.","triggerScenarios":"quarkus.spring-cloud-config.discovery.enabled=true but no quarkus.spring-cloud-config.discovery.eureka.* properties are set, so discoveryConfig.eurekaConfig() returns empty.","commonSituations":"User enabled Spring Cloud Config discovery but forgot the eureka block; config property typo (e.g. 'eureka.service-urls' instead of 'eureka.service-url'); config file not loaded (wrong profile).","solutions":["Add the eureka config: quarkus.spring-cloud-config.discovery.eureka.service-url=http://localhost:8761/eureka","Check for typos in the property names under quarkus.spring-cloud-config.discovery.eureka","Verify the active config profile actually contains the eureka section"],"exampleFix":"# before\nquarkus.spring-cloud-config.discovery.enabled=true\n# after\nquarkus.spring-cloud-config.discovery.enabled=true\nquarkus.spring-cloud-config.discovery.eureka.service-url=http://localhost:8761/eureka","handlingStrategy":"validation","validationCode":"boolean ok = config.enabled()\n    && config.discoveryConfig().isPresent()\n    && config.discoveryConfig().get().eurekaConfig().isPresent();\nif (config.enabled() && !ok) throw new IllegalStateException(\"Add quarkus.spring-cloud-config.discovery.eureka.service-url\");","typeGuard":null,"tryCatchPattern":"try {\n    discoveryService.discover(serviceId);\n} catch (IllegalArgumentException e) {\n    log.error(\"Missing eureka discovery config: \" + e.getMessage());\n}","preventionTips":["Always set the full discovery block when enabling discovery","Run the app in dev mode to catch config mapping errors early","Check property names against the quarkus-spring-cloud-config-client reference docs"],"tags":["spring-cloud-config","eureka","missing-config","configuration"],"backgroundTag":"missing-config-property","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}