{"record":{"id":"7d60a3448a65ae53","repo":"quarkusio/quarkus","slug":"no-service-id-has-been-configured-for-service","errorCode":null,"errorMessage":"No service ID has been configured for service","messagePattern":"No service ID has 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":66,"sourceCode":"                + \"' 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":48,"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#L48-L76","documentation":"DiscoveryService.validate() requires a serviceId to look up in Eureka. This IllegalArgumentException is thrown when the eureka config is valid but quarkus.spring-cloud-config.discovery.service-id is empty, leaving discovery without a registry name to query.","triggerScenarios":"discover() -> validate() with discovery enabled, eureka service-url set, but quarkus.spring-cloud-config.discovery.service-id unset or blank.","commonSituations":"User assumes the default serviceId is always set; serviceId blanked by an env override; serviceId removed during config refactoring.","solutions":["Set quarkus.spring-cloud-config.discovery.service-id to the Config Server's registered application name (default 'spring-cloud-config-server')","Confirm the value is not blank after env-var/profile resolution","Cross-check the name against the Config Server's spring.application.name registration"],"exampleFix":"# before\nquarkus.spring-cloud-config.discovery.service-id=\n# after\nquarkus.spring-cloud-config.discovery.service-id=spring-cloud-config-server","handlingStrategy":"validation","validationCode":"var d = config.discoveryConfig();\nif (d.isPresent() && d.get().serviceId().isEmpty()) {\n    throw new IllegalStateException(\"Set quarkus.spring-cloud-config.discovery.service-id\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    discoveryService.discover(serviceId);\n} catch (IllegalArgumentException e) {\n    log.error(\"service-id missing: \" + e.getMessage());\n}","preventionTips":["Set service-id explicitly, default is 'spring-cloud-config-server'","Match it exactly to the Config Server's spring.application.name","Re-check the property after config refactors or profile changes"],"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"}