From d9118eb239a98a158eeaebce1907cb0560f3a1e6 Mon Sep 17 00:00:00 2001 From: Zoltan Papp Date: Tue, 13 Jan 2026 13:33:15 +0100 Subject: [PATCH] [client] Fix WASM peer connection to lazy peers (#5097) WASM peers now properly initiate relay connections instead of waiting for offers that lazy peers won't send. --- client/internal/peer/conn.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/client/internal/peer/conn.go b/client/internal/peer/conn.go index 20a2eb342..80ca36789 100644 --- a/client/internal/peer/conn.go +++ b/client/internal/peer/conn.go @@ -669,10 +669,17 @@ func (conn *Conn) isConnectedOnAllWay() (connected bool) { } }() - if runtime.GOOS != "js" && conn.statusICE.Get() == worker.StatusDisconnected && !conn.workerICE.InProgress() { + // For JS platform: only relay connection is supported + if runtime.GOOS == "js" { + return conn.statusRelay.Get() == worker.StatusConnected + } + + // For non-JS platforms: check ICE connection status + if conn.statusICE.Get() == worker.StatusDisconnected && !conn.workerICE.InProgress() { return false } + // If relay is supported with peer, it must also be connected if conn.workerRelay.IsRelayConnectionSupportedWithPeer() { if conn.statusRelay.Get() == worker.StatusDisconnected { return false