diff --git a/apps/android/app/src/main/java/com/clawdis/android/NodeRuntime.kt b/apps/android/app/src/main/java/com/clawdis/android/NodeRuntime.kt index e19951495..7744bacf2 100644 --- a/apps/android/app/src/main/java/com/clawdis/android/NodeRuntime.kt +++ b/apps/android/app/src/main/java/com/clawdis/android/NodeRuntime.kt @@ -433,7 +433,8 @@ class NodeRuntime(context: Context) { } if (!resolved.ok || resolved.token.isNullOrBlank()) { - _statusText.value = "Failed: pairing required" + val errorMessage = resolved.error?.trim().orEmpty().ifEmpty { "pairing required" } + _statusText.value = "Failed: $errorMessage" return@launch } diff --git a/apps/android/app/src/main/java/com/clawdis/android/bridge/BridgePairingClient.kt b/apps/android/app/src/main/java/com/clawdis/android/bridge/BridgePairingClient.kt index 355b13614..6b2c79201 100644 --- a/apps/android/app/src/main/java/com/clawdis/android/bridge/BridgePairingClient.kt +++ b/apps/android/app/src/main/java/com/clawdis/android/bridge/BridgePairingClient.kt @@ -37,21 +37,21 @@ class BridgePairingClient { withContext(Dispatchers.IO) { val socket = Socket() socket.tcpNoDelay = true - socket.connect(InetSocketAddress(endpoint.host, endpoint.port), 8_000) - socket.soTimeout = 60_000 - - val reader = BufferedReader(InputStreamReader(socket.getInputStream(), Charsets.UTF_8)) - val writer = BufferedWriter(OutputStreamWriter(socket.getOutputStream(), Charsets.UTF_8)) - - fun send(line: String) { - writer.write(line) - writer.write("\n") - writer.flush() - } - - fun sendJson(obj: JsonObject) = send(obj.toString()) - try { + socket.connect(InetSocketAddress(endpoint.host, endpoint.port), 8_000) + socket.soTimeout = 60_000 + + val reader = BufferedReader(InputStreamReader(socket.getInputStream(), Charsets.UTF_8)) + val writer = BufferedWriter(OutputStreamWriter(socket.getOutputStream(), Charsets.UTF_8)) + + fun send(line: String) { + writer.write(line) + writer.write("\n") + writer.flush() + } + + fun sendJson(obj: JsonObject) = send(obj.toString()) + sendJson( buildJsonObject { put("type", JsonPrimitive("hello")) @@ -111,6 +111,9 @@ class BridgePairingClient { } else -> PairResult(ok = false, token = null, error = "unexpected bridge response") } + } catch (e: Exception) { + val message = e.message?.trim().orEmpty().ifEmpty { "gateway unreachable" } + PairResult(ok = false, token = null, error = message) } finally { try { socket.close()