quarkusio/quarkus · error · IllegalArgumentException

Value: ' ' of property 'quarkus.spring-cloud-config.url' is…

Error message

Value: '${config.url()}' of property 'quarkus.spring-cloud-config.url' is invalid

What it means

DirectConfigServerBaseUrlProvider converts the quarkus.spring-cloud-config.url property into a java.net.URI for the Config Server base URL. When UrlUtility.toURI() raises a URISyntaxException the provider wraps it in an IllegalArgumentException naming the offending property value. The configured URL is syntactically invalid (bad characters, spaces, missing scheme, etc.).

Solutions

  1. Correct the value of quarkus.spring-cloud-config.url to a valid absolute URI, e.g. http://config-server:8888
  2. URL-encode any special characters or remove spaces/braces
  3. Verify that property substitution resolved correctly (run with -Dquarkus.log.level=DEBUG or print effective config)

Example fix

// before
quarkus.spring-cloud-config.url=http://config server:8888

// after
quarkus.spring-cloud-config.url=http://config-server:8888
Defensive patterns

Strategy: validation

Validate before calling

String url = "http://config-server:8888";
try { new java.net.URI(url); } catch (URISyntaxException e) {
    throw new IllegalArgumentException("Invalid quarkus.spring-cloud-config.url: " + url, e);
}

Try / catch

catch (IllegalArgumentException e) { log.error("Fix quarkus.spring-cloud-config.url", e); }

Prevention

When it happens

Trigger: Setting quarkus.spring-cloud-config.url to a malformed URI, e.g. 'http://config server:8888' (space), 'config-server:8888' (no scheme, parsed as unknown scheme), or containing unencoded special characters like '{' or '|'.

Common situations: Copy-pasting a URL with trailing whitespace or quotes from documentation; using environment-variable interpolation that leaves literal '${...}' text in the value; typos in the host/port.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/da7fddb220d000aa. Report an issue: GitHub.

Appendix: source

Thrown at extensions/spring-cloud-config-client/runtime/src/main/java/io/quarkus/spring/cloud/config/client/runtime/DirectConfigServerBaseUrlProvider.java:22

import java.net.URISyntaxException;

import io.quarkus.spring.cloud.config.client.runtime.util.UrlUtility;

public class DirectConfigServerBaseUrlProvider implements ConfigServerBaseUrlProvider {
    private final SpringCloudConfigClientConfig config;

    public DirectConfigServerBaseUrlProvider(SpringCloudConfigClientConfig config) {
        this.config = config;
    }

    @Override
    public URI get() {
        String url = config.url();
        validate(url);
        try {
            return UrlUtility.toURI(url);
        } catch (URISyntaxException e) {
            throw new IllegalArgumentException("Value: '" + config.url()
                    + "' of property 'quarkus.spring-cloud-config.url' is invalid", e);
        }
    }

    private void validate(String url) {
        if (null == url || url.isEmpty()) {
            throw new IllegalArgumentException(
                    "The 'quarkus.spring-cloud-config.url' property cannot be empty");
        }
    }
}

View on GitHub (pinned to e1c734241f)