{"record":{"id":"f7020829d98c242f","repo":"quarkusio/quarkus","slug":"no-service-urls-have-been-configured-for-service","errorCode":null,"errorMessage":"No service URLs have been configured for service","messagePattern":"No service URLs have been configured for service","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":63,"sourceCode":"        }\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":45,"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#L45-L76","documentation":"DiscoveryService.validate() requires at least one Eureka server URL. This IllegalArgumentException is thrown when the eureka config block exists but its service-url list is empty, so discovery has no Eureka endpoint to query.","triggerScenarios":"quarkus.spring-cloud-config.discovery.eureka.* present but quarkus.spring-cloud-config.discovery.eureka.service-url is unset or an empty list, then discover() -> validate() fails.","commonSituations":"Empty property value in application.properties; property defined only in a non-active profile; value cleared via environment variable override (SPRING_CLOUD_CONFIG_DISCOVERY_EUREKA_SERVICE_URL='').","solutions":["Set quarkus.spring-cloud-config.discovery.eureka.service-url to a non-empty Eureka URL (e.g. http://localhost:8761/eureka)","If using env vars/overrides, confirm the final resolved value is non-empty (check startup config logs)","Remove the empty eureka block or disable discovery if a direct quarkus.spring-cloud-config.url is used instead"],"exampleFix":"# before\nquarkus.spring-cloud-config.discovery.eureka.service-url=\n# after\nquarkus.spring-cloud-config.discovery.eureka.service-url=http://localhost:8761/eureka","handlingStrategy":"validation","validationCode":"var d = config.discoveryConfig();\nif (d.isPresent() && d.get().eurekaConfig().isPresent()\n    && d.get().eurekaConfig().get().serviceUrl().isEmpty()) {\n    throw new IllegalStateException(\"quarkus.spring-cloud-config.discovery.eureka.service-url must not be empty\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    discoveryService.discover(serviceId);\n} catch (IllegalArgumentException e) {\n    log.error(\"Eureka service-url missing: \" + e.getMessage());\n}","preventionTips":["Never leave service-url blank; give at least one Eureka URL","Audit env-var overrides that can blank the property","Verify the active profile contains the Eureka URL"],"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-12T22:17:10.623Z"}