diff --git a/changelog.d/17817.bugfix b/changelog.d/17817.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..5dd276709b0be266c5eb1cd9feb5c6b107e29b8c
--- /dev/null
+++ b/changelog.d/17817.bugfix
@@ -0,0 +1 @@
+Avoid lost data on some database query retries.
diff --git a/synapse/storage/databases/main/search.py b/synapse/storage/databases/main/search.py
index b436275f3fda0b2a516a2453c9fdd2f9862dd6ae..1d5c5e72ffc3ac383e8ce8a1a1e756eba863c341 100644
--- a/synapse/storage/databases/main/search.py
+++ b/synapse/storage/databases/main/search.py
@@ -94,7 +94,7 @@ class SearchWorkerStore(SQLBaseStore):
             VALUES (?,?,?,to_tsvector('english', ?),?,?)
             """
 
-            args1 = (
+            args1 = [
                 (
                     entry.event_id,
                     entry.room_id,
@@ -104,7 +104,7 @@ class SearchWorkerStore(SQLBaseStore):
                     entry.origin_server_ts,
                 )
                 for entry in entries
-            )
+            ]
 
             txn.execute_batch(sql, args1)