quarkusio/quarkus · error · RuntimeException

Live reload URL set but no password, remote dev requires a p

Error message

Live reload URL set but no password, remote dev requires a password, set quarkus.live-reload.password on both server and client

What it means

HttpRemoteDevClientProvider.getClient returns a client only when quarkus.live-reload.url is set; remote dev mode mandates authentication, so if the URL is set but no password is configured it throws this RuntimeException instead of returning a client.

Source

Thrown at extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/devmode/HttpRemoteDevClientProvider.java:21

import java.util.Optional;

import org.eclipse.microprofile.config.ConfigProvider;

import io.quarkus.deployment.dev.remote.RemoteDevClient;
import io.quarkus.deployment.dev.remote.RemoteDevClientProvider;
import io.quarkus.runtime.LiveReloadConfig;
import io.smallrye.config.SmallRyeConfig;

public class HttpRemoteDevClientProvider implements RemoteDevClientProvider {
    @Override
    public Optional<RemoteDevClient> getClient() {
        SmallRyeConfig config = ConfigProvider.getConfig().unwrap(SmallRyeConfig.class);
        LiveReloadConfig liveReloadConfig = config.getConfigMapping(LiveReloadConfig.class);
        if (!liveReloadConfig.url().isPresent()) {
            return Optional.empty();
        }
        if (!liveReloadConfig.password().isPresent()) {
            throw new RuntimeException(
                    "Live reload URL set but no password, remote dev requires a password, set quarkus.live-reload.password on both server and client");
        }
        return Optional.of(new HttpRemoteDevClient(liveReloadConfig.url().get(), liveReloadConfig.password().get(),
                liveReloadConfig.connectTimeout(), liveReloadConfig.retryInterval(), liveReloadConfig.retryMaxAttempts()));
    }
}

View on GitHub (pinned to e1c734241f)

Solutions

  1. Set quarkus.live-reload.password on the client to the same value as on the remote server
  2. Or remove quarkus.live-reload.url if remote dev is not intended
  3. Confirm the property name is exactly quarkus.live-reload.password in the active profile/config source

Example fix

// before
quarkus.live-reload.url=http://remote-host:8080
// after
quarkus.live-reload.url=http://remote-host:8080
quarkus.live-reload.password=my-secret
Defensive patterns

Strategy: validation

Validate before calling

SmallRyeConfig cfg = ConfigProvider.getConfig().unwrap(SmallRyeConfig.class);
LiveReloadConfig lc = cfg.getConfigMapping(LiveReloadConfig.class);
if (lc.url().isPresent() && !lc.password().isPresent()) {
    throw new IllegalStateException("Set quarkus.live-reload.password on both server and client");
}

Prevention

When it happens

Trigger: quarkus.live-reload.url is present in config while quarkus.live-reload.password is absent when getClient runs during application startup.

Common situations: Developer sets the remote dev URL but forgets the password on the client side; password set on server but not client (or vice versa); config property renamed/typo'd (e.g. quarkus.live-reload.passwd).

Understand the failure class

Background: "X is required", "must be set", "cannot be empty": the missing-required-config error family, from Vertex AI project/location to WeChat keys — this error's family across 18 libraries.

Related errors


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