diff --git a/synapse/storage/data_stores/main/end_to_end_keys.py b/synapse/storage/data_stores/main/end_to_end_keys.py index e139c14769..d9ef671988 100644 --- a/synapse/storage/data_stores/main/end_to_end_keys.py +++ b/synapse/storage/data_stores/main/end_to_end_keys.py @@ -383,10 +383,11 @@ class EndToEndKeyWorkerStore(SQLBaseStore): "SELECT target_user_id, key_id, signature " " FROM e2e_cross_signing_signatures " " WHERE user_id = ?" - " AND (target_user_id, target_device_id) IN (VALUES %s)" - ) % (",".join("(?,?)" for d in devices)) + " AND (%s)" + ) % (" OR ".join("(target_user_id = ? AND target_device_id = ?)" for d in devices)) query_params = [from_user_id] for item in devices.items(): + # item is a (user_id, device_id) tuple query_params.extend(item) txn.execute(sql, query_params)