diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java
index 39b4d7fa09876587face46f446b9ab4586e4b318..ecdf5291f1f55651ca4c85f119211973c6c1959f 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java
@@ -103,22 +103,32 @@ class MailboxManagerImpl implements MailboxManager {
 			MailboxProperties props = db.transactionWithNullableResult(true,
 					mailboxSettingsManager::getOwnMailboxProperties);
 			success = api.checkStatus(props);
-		} catch (DbException | IOException | MailboxApi.ApiException e) {
+		} catch (DbException e) {
+			logException(LOG, WARNING, e);
+			// we don't treat this is a failure to record
+			return false;
+		} catch (IOException | MailboxApi.ApiException e) {
+			// we record this as a failure
 			success = false;
 			logException(LOG, WARNING, e);
 		}
-		if (success) {
-			try {
-				// we are only recording successful connections here
-				// as those update the UI and failures might be false negatives
-				db.transaction(false, txn ->
-						mailboxSettingsManager.recordSuccessfulConnection(txn,
-								clock.currentTimeMillis()));
-			} catch (DbException e) {
-				logException(LOG, WARNING, e);
-			}
+		try {
+			recordCheckResult(success);
+		} catch (DbException e) {
+			logException(LOG, WARNING, e);
 		}
 		return success;
 	}
 
+	private void recordCheckResult(boolean success) throws DbException {
+		long now = clock.currentTimeMillis();
+		db.transaction(false, txn -> {
+			if (success) {
+				mailboxSettingsManager.recordSuccessfulConnection(txn, now);
+			} else {
+				mailboxSettingsManager.recordFailedConnectionAttempt(txn, now);
+			}
+		});
+	}
+
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java
index 45f3456db2c20fc430b10f05121958e478359133..921081964de1c97c092b7b517831a9b5c7fb57a7 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java
@@ -100,7 +100,7 @@ public class MailboxStatusFragment extends Fragment {
 				.observe(getViewLifecycleOwner(), this::onMailboxStateChanged);
 
 		// TODO
-		//  * detect problems and show them #2175
+		//  * Implement UI for warning user when mailbox is unreachable #2175
 		//  * add "Unlink" button confirmation dialog and functionality #2173
 		Button unlinkButton = v.findViewById(R.id.unlinkButton);
 		unlinkButton.setOnClickListener(view -> Toast.makeText(requireContext(),
diff --git a/briar-android/src/main/res/layout/fragment_mailbox_status.xml b/briar-android/src/main/res/layout/fragment_mailbox_status.xml
index 58096f4876b1d1d6c611790df595f9b18e17fbb3..098c71d7cebe1f78c963d94d2c19ddb42119aa8f 100644
--- a/briar-android/src/main/res/layout/fragment_mailbox_status.xml
+++ b/briar-android/src/main/res/layout/fragment_mailbox_status.xml
@@ -19,22 +19,23 @@
 		app:layout_constraintTop_toTopOf="parent"
 		app:layout_constraintVertical_bias="0.25"
 		app:layout_constraintVertical_chainStyle="packed"
-		app:srcCompat="@drawable/ic_check_circle_outline"
-		app:tint="@color/briar_brand_green"
-		tools:ignore="ContentDescription" />
+		tools:ignore="ContentDescription"
+		tools:srcCompat="@drawable/ic_help_outline_white"
+		tools:tint="@color/briar_orange_500" />
 
 	<TextView
 		android:id="@+id/statusTitleView"
 		android:layout_width="wrap_content"
 		android:layout_height="wrap_content"
 		android:layout_margin="16dp"
-		android:text="@string/mailbox_status_connected_title"
+		android:gravity="center"
 		android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6"
 		app:layout_constrainedWidth="true"
 		app:layout_constraintBottom_toTopOf="@+id/checkButton"
 		app:layout_constraintEnd_toEndOf="parent"
 		app:layout_constraintStart_toStartOf="parent"
-		app:layout_constraintTop_toBottomOf="@+id/imageView" />
+		app:layout_constraintTop_toBottomOf="@+id/imageView"
+		tools:text="@string/mailbox_status_problem_title" />
 
 	<Button
 		android:id="@+id/checkButton"
diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml
index f3d2ec0ab94d148fb42c079ddd2a5ead23dfeba8..f38a3639f56e367df256c9651b0a0112211275da 100644
--- a/briar-android/src/main/res/values/strings.xml
+++ b/briar-android/src/main/res/values/strings.xml
@@ -643,7 +643,7 @@
 	<string name="tor_offline_button_check">Check connection settings</string>
 	<string name="mailbox_status_title">Mailbox status</string>
 	<string name="mailbox_status_connected_title">Mailbox is running</string>
-	<string name="mailbox_status_problem_title">We are having trouble connecting to the mailbox</string>
+	<string name="mailbox_status_problem_title">Briar is having trouble connecting to the Mailbox</string>
 	<string name="mailbox_status_failure_title">Mailbox is unavailable</string>
 	<string name="mailbox_status_check_button">Check Connection</string>
 	<!-- Example for string substitution: Last connection: 3min ago-->