From 15cd2bbd3b792f1c7091b12e8398ed53081b5116 Mon Sep 17 00:00:00 2001 From: D-Fed11 Date: Fri, 21 Aug 2026 11:34:33 +0200 Subject: [PATCH] PeerHelper: deduplicate self node in peer list With headscale servers, selfNode can already be present in netmap.Peers, causing it to appear twice in (peers + selfNode). Both entries share the same StableID, which triggers a KeyAlreadyUsed IllegalArgumentException in the MainView LazyColumn, crashing the app on launch. Fix by deduplicating on StableID before iterating. Verified working on Raspberry Pi 4 with headscale. Closes #20725 Ref #832 --- android/src/main/java/com/tailscale/ipn/ui/util/PeerHelper.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/tailscale/ipn/ui/util/PeerHelper.kt b/android/src/main/java/com/tailscale/ipn/ui/util/PeerHelper.kt index 8e6ca28539..dbfb6d5cc5 100644 --- a/android/src/main/java/com/tailscale/ipn/ui/util/PeerHelper.kt +++ b/android/src/main/java/com/tailscale/ipn/ui/util/PeerHelper.kt @@ -32,7 +32,7 @@ class PeerCategorizer { val me = netmap.currentUserProfile() - for (peer in (peers + selfNode)) { + for (peer in (peers + selfNode).distinctBy { it.StableID }) { val userId = peer.User val profile = netmap.userProfile(userId)