diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/FileUploader.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/FileUploader.kt
index 6bb43d599c..6a4dd26392 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/FileUploader.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/FileUploader.kt
@@ -47,14 +47,15 @@ import java.io.FileNotFoundException
 import java.io.IOException
 import javax.inject.Inject
 
-internal class FileUploader @Inject constructor(@Authenticated
-                                                private val okHttpClient: OkHttpClient,
-                                                private val globalErrorReceiver: GlobalErrorReceiver,
-                                                private val homeServerCapabilitiesService: DefaultHomeServerCapabilitiesService,
-                                                private val context: Context,
-                                                private val temporaryFileCreator: TemporaryFileCreator,
-                                                contentUrlResolver: ContentUrlResolver,
-                                                moshi: Moshi) {
+internal class FileUploader @Inject constructor(
+        @Authenticated private val okHttpClient: OkHttpClient,
+        private val globalErrorReceiver: GlobalErrorReceiver,
+        private val homeServerCapabilitiesService: DefaultHomeServerCapabilitiesService,
+        private val context: Context,
+        private val temporaryFileCreator: TemporaryFileCreator,
+        contentUrlResolver: ContentUrlResolver,
+        moshi: Moshi
+) {
 
     private val uploadUrl = contentUrlResolver.uploadUrl
     private val responseAdapter = moshi.adapter(ContentUploadResponse::class.java)
@@ -120,11 +121,17 @@ internal class FileUploader @Inject constructor(@Authenticated
         }
     }
 
-    private suspend fun upload(uploadBody: RequestBody, filename: String?, progressListener: ProgressRequestBody.Listener?): ContentUploadResponse {
+    private suspend fun upload(uploadBody: RequestBody,
+                               filename: String?,
+                               progressListener: ProgressRequestBody.Listener?): ContentUploadResponse {
         val urlBuilder = uploadUrl.toHttpUrlOrNull()?.newBuilder() ?: throw RuntimeException()
 
         val httpUrl = urlBuilder
-                .addQueryParameter("filename", filename)
+                .apply {
+                    if (filename != null) {
+                        addQueryParameter("filename", filename)
+                    }
+                }
                 .build()
 
         val requestBody = if (progressListener != null) ProgressRequestBody(uploadBody, progressListener) else uploadBody
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt
index d5c3deeec6..06cbf1ba90 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt
@@ -229,7 +229,6 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
                 val encryptedFile: File?
                 val contentUploadResponse = if (params.isEncrypted) {
                     Timber.v("## Encrypt file")
-
                     encryptedFile = temporaryFileCreator.create()
                             .also { filesToDelete.add(it) }
 
@@ -239,16 +238,22 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
                                     contentUploadStateTracker.setEncrypting(it, read.toLong(), total.toLong())
                                 }
                             }
-
                     Timber.v("## Uploading file")
-
-                    fileUploader
-                            .uploadFile(encryptedFile, attachment.name, MimeTypes.OctetStream, progressListener)
+                    fileUploader.uploadFile(
+                            file = encryptedFile,
+                            filename = null,
+                            mimeType = MimeTypes.OctetStream,
+                            progressListener = progressListener
+                    )
                 } else {
-                    Timber.v("## Clear file")
+                    Timber.v("## Uploading clear file")
                     encryptedFile = null
-                    fileUploader
-                            .uploadFile(fileToUpload, attachment.name, attachment.getSafeMimeType(), progressListener)
+                    fileUploader.uploadFile(
+                            file = fileToUpload,
+                            filename = attachment.name,
+                            mimeType = attachment.getSafeMimeType(),
+                            progressListener = progressListener
+                    )
                 }
 
                 Timber.v("## Update cache storage for ${contentUploadResponse.contentUri}")
@@ -312,7 +317,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
                             val encryptionResult = MXEncryptedAttachments.encryptAttachment(thumbnailData.bytes.inputStream(), thumbnailData.mimeType)
                             val contentUploadResponse = fileUploader.uploadByteArray(
                                     byteArray = encryptionResult.encryptedByteArray,
-                                    filename = "thumb_${params.attachment.name}",
+                                    filename = null,
                                     mimeType = MimeTypes.OctetStream,
                                     progressListener = thumbnailProgressListener
                             )