 
     func observeMassesUpdate()
     {
-        healthService.observeChanges(in: .mass)
-            .sink(weak: self, receiveValue: { me, _ in
-                me.loadMasses()
-            }).store(in: &cancellables)
-    }
-
-    func loadMasses()
-    {
-        loadMassCancellable?.cancel()
-        masses.removeAll()
-        loadMassCancellable = healthService.fetchMass()
-            .sink(weak: self, receiveValue: { me, masses in
-                me.masses.append(contentsOf: masses)
-            })
+        massObserverCancellable?.cancel()
+        massObserverCancellable = healthService.observeChanges(in: .mass)
+            .prepend(())
+            .flatMap { [healthService] _ in
+                healthService.fetchMass().catchFailureLogAndReplace(with: [])
+            }
+            .sink(
+                weak: self,
+                receiveCompletion: { _, completion in
+                    if let error = completion.error {
+                        Log.error(error)
+                    }
+                },
+                receiveValue: { me, masses in
+                    me.masses = masses
+                }
+            )
     }
 
     func tapAddMass()


    public override func viewDidLoad()
    {
        observeMassesUpdate()
    }

    func updateView()


    private lazy var customView = ListView()

    private var massObserverCancellable: AnyCancellable?
    private var cancellables = Set<AnyCancellable>()
    private var loadMassCancellable: AnyCancellable?

