diff --git a/server.go b/server.go index 39600fb6f..0fc95dc75 100644 --- a/server.go +++ b/server.go @@ -2504,6 +2504,23 @@ func (s *server) Stop() error { if err := s.htlcNotifier.Stop(); err != nil { srvrLog.Warnf("failed to stop htlcNotifier: %v", err) } + + // Update channel.backup file. Make sure to do it before + // stopping chanSubSwapper. + singles, err := chanbackup.FetchStaticChanBackups( + s.chanStateDB, s.addrSource, + ) + if err != nil { + srvrLog.Warnf("failed to fetch channel states: %v", + err) + } else { + err := s.chanSubSwapper.ManualUpdate(singles) + if err != nil { + srvrLog.Warnf("Manual update of channel "+ + "backup failed: %v", err) + } + } + if err := s.chanSubSwapper.Stop(); err != nil { srvrLog.Warnf("failed to stop chanSubSwapper: %v", err) }