diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/AppConfigProvider.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/AppConfigProvider.kt
index 796f19a123ce9fd8886172f8389ebfb122aff32a..47810d4506d7d8d10215e7d5991730b99325e99c 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/AppConfigProvider.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/AppConfigProvider.kt
@@ -58,7 +58,12 @@ class AppConfigProvider @Inject constructor(
             downloadAppConfig()
         } catch (e: Exception) {
             Timber.w(e, "Failed to download latest AppConfig.")
-            null
+            if (configStorage.isAppConfigAvailable) {
+                null
+            } else {
+                Timber.e("No fallback available, rethrowing!")
+                throw e
+            }
         }
 
         val newConfigParsed = try {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/AppConfigStorage.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/AppConfigStorage.kt
index 49bbca096850f67457e2cb292670f75ceab62d91..44edccd9c44b9163bcb367cd070e64fe7c4e38fb 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/AppConfigStorage.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/AppConfigStorage.kt
@@ -13,6 +13,9 @@ class AppConfigStorage @Inject constructor(
     private val configDir = File(context.filesDir, "appconfig_storage")
     private val configFile = File(configDir, "appconfig")
 
+    val isAppConfigAvailable: Boolean
+        get() = configFile.exists() && configFile.length() > MIN_VALID_CONFIG_BYTES
+
     var appConfigRaw: ByteArray?
         get() {
             Timber.v("get() AppConfig")
@@ -36,4 +39,9 @@ class AppConfigStorage @Inject constructor(
                 configFile.delete()
             }
         }
+
+    companion object {
+        // The normal config is ~512B+, we just need to check for a non 0 value, 128 is fine.
+        private const val MIN_VALID_CONFIG_BYTES = 128
+    }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigProviderTest.kt
index b61f6775769bbd8f8055cd59a4c41bf9219ced86..e744b2fc360cc3214b41a46243014e1b33ef77b6 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigProviderTest.kt
@@ -38,6 +38,7 @@ class AppConfigProviderTest : BaseIOTest() {
         testDir.mkdirs()
         testDir.exists() shouldBe true
 
+        every { appConfigStorage.isAppConfigAvailable } answers { mockConfigStorage != null }
         every { appConfigStorage.appConfigRaw } answers { mockConfigStorage }
         every { appConfigStorage.appConfigRaw = any() } answers { mockConfigStorage = arg(0) }
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigStorageTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigStorageTest.kt
index aaecb0b01a8a7debd996fda33db9e6c59d62c409..dd637fbb7269ad1f404b5c58282f9a6f405c1a8b 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigStorageTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigStorageTest.kt
@@ -36,6 +36,21 @@ class AppConfigStorageTest : BaseIOTest() {
 
     private fun createStorage() = AppConfigStorage(context)
 
+    @Test
+    fun `config availability is determined by file existence and min size`() {
+        storageDir.mkdirs()
+        val storage = createStorage()
+        storage.isAppConfigAvailable shouldBe false
+        configPath.createNewFile()
+        storage.isAppConfigAvailable shouldBe false
+
+        configPath.writeBytes(ByteArray(128) { 1 })
+        storage.isAppConfigAvailable shouldBe false
+
+        configPath.writeBytes(ByteArray(129) { 1 })
+        storage.isAppConfigAvailable shouldBe true
+    }
+
     @Test
     fun `simple read and write config`() {
         configPath.exists() shouldBe false