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