diff --git a/NucleicRemote/NucleicRemote/Models/RemoteStore.swift b/NucleicRemote/NucleicRemote/Models/RemoteStore.swift index fbc55a8..16f7556 100644 --- a/NucleicRemote/NucleicRemote/Models/RemoteStore.swift +++ b/NucleicRemote/NucleicRemote/Models/RemoteStore.swift @@ -1284,7 +1284,9 @@ final class RemoteStore: ObservableObject { // A host that dropped should re-register when it returns. pushToStartSentTo = pushToStartSentTo.filter { connections[$0]?.connectivity.isLive == true } for (id, conn) in connections { - guard conn.connectivity.isLive, conn.capabilities.canPushLiveActivity, + // Gate on the dedicated push-to-start bit, not `canPushLiveActivity`: an older host can + // advertise the latter yet throw on the unknown `registerPushToStartToken` tag. + guard conn.connectivity.isLive, conn.capabilities.canPushToStartLiveActivity, !pushToStartSentTo.contains(id) else { continue } conn.send(.registerPushToStartToken(token)) pushToStartSentTo.insert(id)