2 files changed, 6 insertions, 3 deletions
diff --git a/changelog.d/12496.bugfix b/changelog.d/12496.bugfix
new file mode 100644
index 0000000000..a68df7c96a
--- /dev/null
+++ b/changelog.d/12496.bugfix
@@ -0,0 +1 @@
+Fix bug where the admin API for [deleting forward extremities](https://github.com/matrix-org/synapse/blob/erikj/fix_delete_event_response_count/docs/admin_api/rooms.md#deleting-forward-extremities) would always return a count of 1 no matter how many extremities were deleted. Broke in v1.27.0.
diff --git a/synapse/storage/databases/main/events_forward_extremities.py b/synapse/storage/databases/main/events_forward_extremities.py
index 68901b4335..f851bff604 100644
--- a/synapse/storage/databases/main/events_forward_extremities.py
+++ b/synapse/storage/databases/main/events_forward_extremities.py
@@ -66,13 +66,15 @@ class EventForwardExtremitiesStore(
"""
txn.execute(sql, (event_id, room_id))
+
+ deleted_count = txn.rowcount
logger.info(
"Deleted %s extra forward extremities for room %s",
- txn.rowcount,
+ deleted_count,
room_id,
)
- if txn.rowcount > 0:
+ if deleted_count > 0:
# Invalidate the cache
self._invalidate_cache_and_stream(
txn,
@@ -80,7 +82,7 @@ class EventForwardExtremitiesStore(
(room_id,),
)
- return txn.rowcount
+ return deleted_count
return await self.db_pool.runInteraction(
"delete_forward_extremities_for_room",
|