diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/SendEventWorker.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/SendEventWorker.kt
index 2868ce29c1..d37b5e90c2 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/SendEventWorker.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/SendEventWorker.kt
@@ -21,16 +21,16 @@ import android.content.Context
 import androidx.work.CoroutineWorker
 import androidx.work.WorkerParameters
 import com.squareup.moshi.JsonClass
+import org.greenrobot.eventbus.EventBus
 import org.matrix.android.sdk.api.failure.shouldBeRetried
+import org.matrix.android.sdk.api.session.events.model.Content
 import org.matrix.android.sdk.api.session.events.model.Event
 import org.matrix.android.sdk.api.session.room.send.SendState
-import org.matrix.android.sdk.internal.database.mapper.ContentMapper
 import org.matrix.android.sdk.internal.network.executeRequest
 import org.matrix.android.sdk.internal.session.room.RoomAPI
 import org.matrix.android.sdk.internal.worker.SessionWorkerParams
 import org.matrix.android.sdk.internal.worker.WorkerParamsFactory
 import org.matrix.android.sdk.internal.worker.getSessionComponent
-import org.greenrobot.eventbus.EventBus
 import timber.log.Timber
 import javax.inject.Inject
 
@@ -47,12 +47,10 @@ internal class SendEventWorker(context: Context,
     @JsonClass(generateAdapter = true)
     internal data class Params(
             override val sessionId: String,
-            // TODO remove after some time, it's used for compat
             val event: Event? = null,
             val eventId: String? = null,
             val roomId: String? = null,
             val type: String? = null,
-            val contentStr: String? = null,
             override val lastFailureMessage: String? = null
     ) : SessionWorkerParams {
 
@@ -61,7 +59,7 @@ internal class SendEventWorker(context: Context,
                 eventId = event.eventId,
                 roomId = event.roomId,
                 type = event.type,
-                contentStr = ContentMapper.map(event.content),
+                event = event,
                 lastFailureMessage = lastFailureMessage
         )
     }
@@ -91,7 +89,7 @@ internal class SendEventWorker(context: Context,
                     .also { Timber.e("Work cancelled due to input error from parent") }
         }
         return try {
-            sendEvent(params.eventId, params.roomId, params.type, params.contentStr)
+            sendEvent(params.eventId, params.roomId, params.type, params.event?.content)
             Result.success()
         } catch (exception: Throwable) {
             // It does start from 0, we want it to stop if it fails the third time
@@ -105,10 +103,10 @@ internal class SendEventWorker(context: Context,
         }
     }
 
-    private suspend fun sendEvent(eventId: String, roomId: String, type: String, contentStr: String?) {
+    private suspend fun sendEvent(eventId: String, roomId: String, type: String, content: Content?) {
         localEchoRepository.updateSendState(eventId, SendState.SENDING)
         executeRequest<SendResponse>(eventBus) {
-            apiCall = roomAPI.send(eventId, roomId, type, contentStr)
+            apiCall = roomAPI.send(eventId, roomId, type, content)
         }
         localEchoRepository.updateSendState(eventId, SendState.SENT)
     }