diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/InsufficientStorageException.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/InsufficientStorageException.kt
index 32d18cb7c2784b112e909947dcc80a9cbe57fb91..bb38a584438e3e1078078684667e7fa96da905d2 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/InsufficientStorageException.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/InsufficientStorageException.kt
@@ -1,7 +1,20 @@
 package de.rki.coronawarnapp.storage
 
+import android.content.Context
+import android.text.format.Formatter
+import de.rki.coronawarnapp.util.FormattedError
 import java.io.IOException
 
 class InsufficientStorageException(
     val result: DeviceStorage.CheckResult
-) : IOException("Not enough free space (Want:${result.requiredBytes}; Have:${result.freeBytes}")
+) : IOException(
+    "Not enough free space: ${result.requiredBytes}B are required and only ${result.freeBytes}B are available."
+), FormattedError {
+
+    override fun getFormattedError(context: Context): String {
+        val formattedRequired = Formatter.formatShortFileSize(context, result.requiredBytes)
+        val formattedFree = Formatter.formatShortFileSize(context, result.freeBytes)
+        // TODO Replace with localized message when the exception is logged via new error tracking.
+        return "Not enough free space: $formattedRequired are required and only $formattedFree are available."
+    }
+}
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/FormattedError.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/FormattedError.kt
new file mode 100644
index 0000000000000000000000000000000000000000..cd100ebbc6db68e6362d66ee24e175c656f7b118
--- /dev/null
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/FormattedError.kt
@@ -0,0 +1,12 @@
+package de.rki.coronawarnapp.util
+
+import android.content.Context
+
+interface FormattedError {
+    fun getFormattedError(context: Context): String
+}
+
+fun Throwable.tryFormattedError(context: Context): String = when (this) {
+    is FormattedError -> this.getFormattedError(context)
+    else -> localizedMessage ?: this.toString()
+}