diff --git a/ipn/ipnlocal/local.go b/ipn/ipnlocal/local.go index 8fc78a36b..3b94f91e8 100644 --- a/ipn/ipnlocal/local.go +++ b/ipn/ipnlocal/local.go @@ -3627,7 +3627,8 @@ func (b *LocalBackend) SetUseExitNodeEnabled(v bool) (ipn.PrefsView, error) { // AdvertiseRoutes has been set in the MaskedPrefs. func (b *LocalBackend) MaybeClearAppConnector(mp *ipn.MaskedPrefs) error { var err error - if b.appConnector != nil && mp.AdvertiseRoutesSet { + routesChanged := mp.AdvertiseRoutesSet || (mp.WantRunningSet && !mp.WantRunning) + if b.appConnector != nil && routesChanged { err = b.appConnector.ClearRoutes() if err != nil { b.logf("appc: clear routes error: %v", err)