         }
         compareToolbarButton.isEnabled = collectionView.indexPathsForSelectedItems?.count ?? 0 == 2
     }
+
+    // MARK: Error handling
+
+    private func showNoInternetConnectionAlertOrOtherWarning(from error: Error, noInternetConnectionAlertMessage: String = CommonStrings.noInternetConnection) {
+        if (error as NSError).wmf_isNetworkConnectionError() {
+            if UIAccessibility.isVoiceOverRunning {
+                UIAccessibility.post(notification: UIAccessibility.Notification.announcement, argument: noInternetConnectionAlertMessage)
+            } else {
+                WMFAlertManager.sharedInstance.showErrorAlertWithMessage(noInternetConnectionAlertMessage, sticky: true, dismissPreviousAlerts: true)
+            }
+        } else {
+            if UIAccessibility.isVoiceOverRunning {
+                UIAccessibility.post(notification: UIAccessibility.Notification.announcement, argument: error.localizedDescription)
+            } else {
+                WMFAlertManager.sharedInstance.showErrorAlertWithMessage(error.localizedDescription, sticky: true, dismissPreviousAlerts: true)
+            }
+        }
+    }
 }

        pageHistoryFetcher.fetchEditMetrics(for: pageTitle, pageURL: pageURL) { result in
            switch result {
            case .failure(let error):
                // TODO: Handle error
                print(error)
                self.countsViewController.timeseriesOfEditsCounts = []
            case .success(let timeseriesOfEditCounts):
                DispatchQueue.main.async {

        pageHistoryFetcher.fetchEditCounts(.edits, .anonEdits, .botEdits, .revertedEdits, for: pageTitle, pageURL: pageURL) { result in
            switch result {
            case .failure(let error):
                self.showNoInternetConnectionAlertOrOtherWarning(from: error)
            case .success(let editCountsGroupedByType):
                DispatchQueue.main.async {
                    self.countsViewController.editCountsGroupedByType = editCountsGroupedByType
