diff --git a/src/main/kotlin/org/briarproject/briar/desktop/introduction/IntroductionViewModel.kt b/src/main/kotlin/org/briarproject/briar/desktop/introduction/IntroductionViewModel.kt
index c49ea03c788370cbf07346ed1a7c532ef6db3421..949eb46a2ad533b1d3df1400fe20d3380ae6e9f4 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/introduction/IntroductionViewModel.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/introduction/IntroductionViewModel.kt
@@ -81,7 +81,9 @@ constructor(
     fun makeIntroduction() {
         val c1 = requireNotNull(_firstContact.value)
         val c2 = requireNotNull(_secondContact.value)
-        val msg = _introductionMessage.value
+        // It's important not to send the empty string here as briar's MessageEncoder for introduction messages throws
+        // an IllegalArgumentException in that case. It is however OK to pass null in this case.
+        val msg = _introductionMessage.value.ifEmpty { null }
 
         runOnDbThread {
             val c1 = contactManager.getContact(c1.idWrapper.contactId)