diff --git a/Sources/XXClient/Models/ReceivedFile.swift b/Sources/XXClient/Models/ReceivedFile.swift
index d5c12370a6a42f2d416007b85c119fe627faffca..8aad9201f0624b3c4de69a7c3613921911c2ff3a 100644
--- a/Sources/XXClient/Models/ReceivedFile.swift
+++ b/Sources/XXClient/Models/ReceivedFile.swift
@@ -4,7 +4,7 @@ public struct ReceivedFile: Equatable {
   public init(
     transferId: Data,
     senderId: Data,
-    preview: Data,
+    preview: Data?,
     name: String,
     type: String,
     size: Int
@@ -19,7 +19,7 @@ public struct ReceivedFile: Equatable {
 
   public var transferId: Data
   public var senderId: Data
-  public var preview: Data
+  public var preview: Data?
   public var name: String
   public var type: String
   public var size: Int
diff --git a/Tests/XXClientTests/Models/ReceivedFileTests.swift b/Tests/XXClientTests/Models/ReceivedFileTests.swift
index 2a967cb9ad11742bb871f864cc442c77a0f84070..636f7a5fbae02aaa44c90f9a2cdd4e2018aeee3e 100644
--- a/Tests/XXClientTests/Models/ReceivedFileTests.swift
+++ b/Tests/XXClientTests/Models/ReceivedFileTests.swift
@@ -37,4 +37,32 @@ final class ReceivedFileTests: XCTestCase {
 
     XCTAssertNoDifference(decodedModel, model)
   }
+
+  func testDecodingWithoutPreview() throws {
+    let transferIdB64 = "B4Z9cwU18beRoGbk5xBjbcd5Ryi9ZUFA2UBvi8FOHWo="
+    let senderIdB64 = "emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"
+    let name = "testfile.txt"
+    let type = "text file"
+    let size: Int = 2048
+    let jsonString = """
+    {
+      "TransferID": "\(transferIdB64)",
+      "SenderID": "\(senderIdB64)",
+      "Name": "\(name)",
+      "Type": "\(type)",
+      "Size": \(size)
+    }
+    """
+    let jsonData = jsonString.data(using: .utf8)!
+    let model = try ReceivedFile.decode(jsonData)
+
+    XCTAssertNoDifference(model, ReceivedFile(
+      transferId: Data(base64Encoded: transferIdB64)!,
+      senderId: Data(base64Encoded: senderIdB64)!,
+      preview: nil,
+      name: name,
+      type: type,
+      size: size
+    ))
+  }
 }