diff --git a/NucleicRemote/NucleicRemote/Models/RemoteStore.swift b/NucleicRemote/NucleicRemote/Models/RemoteStore.swift index 0c2a579..20ab612 100644 --- a/NucleicRemote/NucleicRemote/Models/RemoteStore.swift +++ b/NucleicRemote/NucleicRemote/Models/RemoteStore.swift @@ -706,10 +706,12 @@ final class RemoteStore: ObservableObject { } /// Map an `NWConnection` failure to a connectivity state the pairing/onboarding UI can act on. - /// Only meaningful while we're still establishing the link; once `.connected`, a drop is the - /// normal `.closed` → reconnect path's job. + /// Only meaningful while we're still establishing the link; once connected, a drop is the + /// normal `.closed` → reconnect path's job. And only when the connect chain has nothing + /// left to try — a failed LAN probe about to fall back to the tailnet is routine, not news. private func handleTransportFailure(_ error: String) { - guard connectivity != .connected else { return } + guard !connectivity.isLive else { return } + guard connectPlan?.remaining.isEmpty != false else { return } connectivity = .failed(Self.friendlyTransportError(error)) }