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
- Set quarkus.live-reload.password on the client to the same value as on the remote server
- Or remove quarkus.live-reload.url if remote dev is not intended
- 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
- Always set quarkus.live-reload.password together with quarkus.live-reload.url
- Use the same secret on server and client via a shared config source
- Validate config in CI before running remote dev
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
- remote-dev can only be used with mutable applications i.e. u
- Can only sync state on the server side of remote dev mode
- Could not connect to remote side after restart
- invalid config ${line}
- The configuration ${clazz} must be an interface annotated wi
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/43303d2ddf2a51c9.
Report an issue: GitHub.