From b0c2019b3d6cbf98eb2ad32e0f4d2285ab70403d Mon Sep 17 00:00:00 2001 From: PJ Date: Sat, 25 Apr 2026 18:06:41 +0700 Subject: [PATCH] fix(sidecar): use ephemeral host port for AndroidDriver Hard-coded port 7001 caused TcpForwarder.start() to fail with TimeoutException when a previous sidecar process held the port open. Pick a free port via ServerSocket(0) instead. --- .../src/main/kotlin/dev/sanderling/sidecar/DriverBackend.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sidecar/src/main/kotlin/dev/sanderling/sidecar/DriverBackend.kt b/sidecar/src/main/kotlin/dev/sanderling/sidecar/DriverBackend.kt index c3c6762..d4c209a 100644 --- a/sidecar/src/main/kotlin/dev/sanderling/sidecar/DriverBackend.kt +++ b/sidecar/src/main/kotlin/dev/sanderling/sidecar/DriverBackend.kt @@ -382,7 +382,8 @@ class MaestroDriverBackend(private val serial: String?) : DriverBackend { init { dadb = buildDadb(serial) - driver = maestro.drivers.AndroidDriver(dadb, 7001, "localhost") + val hostPort = java.net.ServerSocket(0).use { it.localPort } + driver = maestro.drivers.AndroidDriver(dadb, hostPort, "localhost") driver.open() }