diff --git a/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt b/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt
index 8b3c62fa5d2e0f00ca303b7b14ab8a9cbfe01b5f..509e505089d3d5b17e705005c55fe0864949d193 100644
--- a/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt
@@ -1,7 +1,9 @@
 package io.elixxir.xxclient.models
 
+import android.util.Log
 import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
+import io.elixxir.xxclient.utils.toBase64String
 
 interface BindingsModel {
 
@@ -16,13 +18,20 @@ interface BindingsModel {
         }
 
         inline fun <reified T> decode(data: ByteArray): T {
-            val typeToken = object : TypeToken<T>() {}.type
-            return Gson().fromJson(data.decodeToString(), typeToken)
+            return if (data.isNotEmpty()) {
+                val typeToken = object : TypeToken<T>() {}.type
+                Gson().fromJson(data.decodeToString(), typeToken)
+            } else {
+                Log.d("Decode", "Failed to decode data: ${data.decodeToString()}")
+                throw InvalidDataException()
+            }
         }
 
         inline fun <reified T> decodeArray(data: ByteArray): List<T> {
-            val typeToken = object : TypeToken<Array<T>>() {}.type
-            return Gson().fromJson<Array<T>>(data.decodeToString(), typeToken).toList()
+            return if (data.isNotEmpty()) {
+                val typeToken = object : TypeToken<Array<T>>() {}.type
+                Gson().fromJson<Array<T>>(data.decodeToString(), typeToken).toList()
+            } else listOf()
         }
     }
 }
\ No newline at end of file