{"record":{"id":"43303d2ddf2a51c9","repo":"quarkusio/quarkus","slug":"live-reload-url-set-but-no-password-remote-dev-re","errorCode":null,"errorMessage":"Live reload URL set but no password, remote dev requires a password, set quarkus.live-reload.password on both server and client","messagePattern":"Live reload URL set but no password, remote dev requires a password, set quarkus\\.live-reload\\.password on both server and client","errorType":"validation","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/devmode/HttpRemoteDevClientProvider.java","lineNumber":21,"sourceCode":"import java.util.Optional;\n\nimport org.eclipse.microprofile.config.ConfigProvider;\n\nimport io.quarkus.deployment.dev.remote.RemoteDevClient;\nimport io.quarkus.deployment.dev.remote.RemoteDevClientProvider;\nimport io.quarkus.runtime.LiveReloadConfig;\nimport io.smallrye.config.SmallRyeConfig;\n\npublic class HttpRemoteDevClientProvider implements RemoteDevClientProvider {\n    @Override\n    public Optional<RemoteDevClient> getClient() {\n        SmallRyeConfig config = ConfigProvider.getConfig().unwrap(SmallRyeConfig.class);\n        LiveReloadConfig liveReloadConfig = config.getConfigMapping(LiveReloadConfig.class);\n        if (!liveReloadConfig.url().isPresent()) {\n            return Optional.empty();\n        }\n        if (!liveReloadConfig.password().isPresent()) {\n            throw new RuntimeException(\n                    \"Live reload URL set but no password, remote dev requires a password, set quarkus.live-reload.password on both server and client\");\n        }\n        return Optional.of(new HttpRemoteDevClient(liveReloadConfig.url().get(), liveReloadConfig.password().get(),\n                liveReloadConfig.connectTimeout(), liveReloadConfig.retryInterval(), liveReloadConfig.retryMaxAttempts()));\n    }\n}\n","sourceCodeStart":3,"sourceCodeEnd":28,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/devmode/HttpRemoteDevClientProvider.java#L3-L28","documentation":"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.","triggerScenarios":"quarkus.live-reload.url is present in config while quarkus.live-reload.password is absent when getClient runs during application startup.","commonSituations":"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).","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"],"exampleFix":"// before\nquarkus.live-reload.url=http://remote-host:8080\n// after\nquarkus.live-reload.url=http://remote-host:8080\nquarkus.live-reload.password=my-secret","handlingStrategy":"validation","validationCode":"SmallRyeConfig cfg = ConfigProvider.getConfig().unwrap(SmallRyeConfig.class);\nLiveReloadConfig lc = cfg.getConfigMapping(LiveReloadConfig.class);\nif (lc.url().isPresent() && !lc.password().isPresent()) {\n    throw new IllegalStateException(\"Set quarkus.live-reload.password on both server and client\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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"],"tags":["config","dev-mode","remote-dev","missing-password"],"backgroundTag":"missing-required-config","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"}