diff --git a/changelog.d/17813.bugfix b/changelog.d/17813.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..5dd276709b0be266c5eb1cd9feb5c6b107e29b8c
--- /dev/null
+++ b/changelog.d/17813.bugfix
@@ -0,0 +1 @@
+Avoid lost data on some database query retries.
diff --git a/synapse/storage/databases/main/room.py b/synapse/storage/databases/main/room.py
index e0b7b7e1949f54a0b94b05b56692b0d5b4b4b68d..33569a4391e696dbbc35a71872ea037519dbddd2 100644
--- a/synapse/storage/databases/main/room.py
+++ b/synapse/storage/databases/main/room.py
@@ -1175,7 +1175,7 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
                 SET quarantined_by = ?
                 WHERE media_origin = ? AND media_id = ?
             """,
-            ((quarantined_by, origin, media_id) for origin, media_id in remote_mxcs),
+            [(quarantined_by, origin, media_id) for origin, media_id in remote_mxcs],
         )
         total_media_quarantined += txn.rowcount if txn.rowcount > 0 else 0