quarkusio/quarkus · error · RuntimeException
Could not connect to remote side after restart
Error message
Could not connect to remote side after restart
What it means
HttpRemoteDevClient throws this when it cannot establish a connection to the remote dev-mode server, even after triggering a restart and retrying the connect loop. The loop attempts to reconnect after a remote restart, swallowing IOExceptions per attempt; if every attempt fails it gives up with this RuntimeException.
Source
Thrown at extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/devmode/HttpRemoteDevClient.java:296
long timeout = System.currentTimeMillis() + reconnectTimeoutMillis;
try {
Thread.sleep(500);
} catch (InterruptedException e) {
}
while (System.currentTimeMillis() < timeout) {
try {
HttpURLConnection connection = (HttpURLConnection) probeUrl.openConnection();
connection.setRequestProperty(HttpHeaders.ACCEPT.toString(), DEFAULT_ACCEPT);
connection.setRequestMethod("POST");
connection.addRequestProperty(HttpHeaders.CONTENT_TYPE.toString(), RemoteSyncHandler.APPLICATION_QUARKUS);
IoUtil.readBytes(connection.getInputStream());
return doConnect(initialState, initialConnectFunction);
} catch (IOException e) {
}
}
throw new RuntimeException("Could not connect to remote side after restart");
}
}
}
View on GitHub (pinned to e1c734241f)
Solutions
- Verify quarkus.live-reload.url points at the reachable remote dev server (curl it)
- Increase quarkus.live-reload.retry-interval and quarkus.live-reload.retry-max-attempts to tolerate slow remote restarts
- Check network/VPN/firewall reachability of the remote host and port
- Restart the client after the remote side is fully up
Example fix
// before quarkus.live-reload.url=http://remote-host:8080 quarkus.live-reload.retry-max-attempts=5 // after quarkus.live-reload.url=http://remote-host:8080 quarkus.live-reload.retry-max-attempts=30 quarkus.live-reload.retry-interval=2S
Defensive patterns
Strategy: retry
Validate before calling
// before starting remote dev, check the server is reachable
URL u = URI.create("http://remote-host:8080").toURL();
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setConnectTimeout(5000);
if (c.getResponseCode() >= 400) throw new IllegalStateException("Remote dev server not reachable"); Try / catch
try {
startRemoteDevClient();
} catch (RuntimeException e) {
if (e.getMessage().contains("Could not connect to remote side")) {
// check network/VPN, verify live-reload.url, restart with higher retry-max-attempts
}
} Prevention
- Verify quarkus.live-reload.url with curl before starting the client
- Raise retry-max-attempts and retry-interval to survive slow remote restarts
- Keep client and server on the same VPN/network segment
- Confirm the remote server log shows it is listening before launching the client
When it happens
Trigger: doConnect -> waitForRestart loop exhausts all retry attempts (quarkus.live-reload.retry-max-attempts) with IOException on every connection attempt to the live-reload URL after a remote restart.
Common situations: Remote host unreachable or VPN down; wrong quarkus.live-reload.url; remote side restarted but slow to come up so all retries are exhausted; firewall blocking the port; retry-interval too short for a slow remote.
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
- Live reload URL set but no password, remote dev requires a p
- Unable to deserialize the dev mode context. Does the Quarkus
- Hot deployment of the application is not supported when upda
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/706cb172b3c03192.
Report an issue: GitHub.