diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/android/StartReceiver.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/StartReceiver.kt
index 9865d44008e9c131cd57ec6d083f8440b87ffabb..0719c1be073aea16f69d4a0766e2fe4992c68153 100644
--- a/mailbox-android/src/main/java/org/briarproject/mailbox/android/StartReceiver.kt
+++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/StartReceiver.kt
@@ -27,6 +27,7 @@ import android.content.Intent.ACTION_MY_PACKAGE_REPLACED
 import dagger.hilt.android.AndroidEntryPoint
 import org.briarproject.mailbox.core.lifecycle.LifecycleManager
 import org.briarproject.mailbox.core.lifecycle.LifecycleManager.LifecycleState.NOT_STARTED
+import org.briarproject.mailbox.core.setup.SetupManager
 import org.briarproject.mailbox.core.util.LogUtils.debug
 import org.slf4j.LoggerFactory.getLogger
 import javax.inject.Inject
@@ -39,10 +40,16 @@ class StartReceiver : BroadcastReceiver() {
     @Inject
     internal lateinit var lifecycleManager: LifecycleManager
 
+    @Inject
+    internal lateinit var setupManager: SetupManager
+
     override fun onReceive(context: Context, intent: Intent) {
         val action = intent.action
         if (action != ACTION_BOOT_COMPLETED && action != ACTION_MY_PACKAGE_REPLACED) return
 
+        // don't start, if we don't even have a database
+        if (!setupManager.hasDb) return
+
         val lifecycleState = lifecycleManager.lifecycleStateFlow.value
         LOG.debug { "Received $action in state ${lifecycleState.name}" }
         if (lifecycleState == NOT_STARTED) {