diff --git a/Sources/SettingsFeature/Controllers/SettingsAdvancedController.swift b/Sources/SettingsFeature/Controllers/SettingsAdvancedController.swift
index 16d474d890f825d556f3b9d9d41039df75b2bc3c..efe25a0030b832db3507172bf4a966d26e0ed54f 100644
--- a/Sources/SettingsFeature/Controllers/SettingsAdvancedController.swift
+++ b/Sources/SettingsFeature/Controllers/SettingsAdvancedController.swift
@@ -63,7 +63,8 @@ public final class SettingsAdvancedController: UIViewController {
 
         screenView.reportingSwitcher.switcherView
             .publisher(for: .valueChanged)
-            .sink { [weak viewModel] in viewModel?.didToggleReporting() }
+            .compactMap { [weak screenView] _ in screenView?.reportingSwitcher.switcherView.isOn }
+            .sink { [weak viewModel] isOn in viewModel?.didSetReporting(enabled: isOn) }
             .store(in: &cancellables)
 
         viewModel.sharePublisher
diff --git a/Sources/SettingsFeature/ViewModels/SettingsAdvancedViewModel.swift b/Sources/SettingsFeature/ViewModels/SettingsAdvancedViewModel.swift
index a0f199a9d012fa3ad5bd21854d9ca8efa38fe03d..3ec9be365abd621e7c1d9d421aff530d0560acc7 100644
--- a/Sources/SettingsFeature/ViewModels/SettingsAdvancedViewModel.swift
+++ b/Sources/SettingsFeature/ViewModels/SettingsAdvancedViewModel.swift
@@ -18,6 +18,7 @@ final class SettingsAdvancedViewModel {
     @KeyObject(.recordingLogs, defaultValue: true) var isRecordingLogs: Bool
     @KeyObject(.crashReporting, defaultValue: true) var isCrashReporting: Bool
 
+    private var cancellables = Set<AnyCancellable>()
     private let isShowingUsernamesKey = "isShowingUsernames"
 
     @Dependency private var logger: XXLogger
@@ -33,9 +34,13 @@ final class SettingsAdvancedViewModel {
     func loadCachedSettings() {
         stateRelay.value.isRecordingLogs = isRecordingLogs
         stateRelay.value.isCrashReporting = isCrashReporting
-        stateRelay.value.isReportingEnabled = reportingStatus.isEnabled()
         stateRelay.value.isReportingOptional = reportingStatus.isOptional()
 
+        reportingStatus
+            .isEnabledPublisher()
+            .sink { [weak stateRelay] in stateRelay?.value.isReportingEnabled = $0 }
+            .store(in: &cancellables)
+
         guard let defaults = UserDefaults(suiteName: "group.elixxir.messenger") else {
             print("^^^ Couldn't access user defaults in the app group container \(#file):\(#line)")
             return
@@ -82,8 +87,7 @@ final class SettingsAdvancedViewModel {
         crashReporter.setEnabled(isCrashReporting)
     }
 
-    func didToggleReporting() {
-        reportingStatus.enable(reportingStatus.isEnabled())
-        stateRelay.value.isReportingEnabled.toggle()
+    func didSetReporting(enabled: Bool) {
+        reportingStatus.enable(enabled)
     }
 }