diff --git a/changelog.d/9780.bugfix b/changelog.d/9780.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..70985a050f11e51a8e41b84242d3888a245d8e48
--- /dev/null
+++ b/changelog.d/9780.bugfix
@@ -0,0 +1 @@
+Fix duplicate logging of exceptions thrown during federation transaction processing.
diff --git a/synapse/federation/transport/server.py b/synapse/federation/transport/server.py
index 5ef0556ef7f8a9cf72837091faf4e3859bf482d7..a9c1391d27ef0b5e53d54b725bb1ff895e0a540e 100644
--- a/synapse/federation/transport/server.py
+++ b/synapse/federation/transport/server.py
@@ -425,13 +425,9 @@ class FederationSendServlet(BaseFederationServlet):
             logger.exception(e)
             return 400, {"error": "Invalid transaction"}
 
-        try:
-            code, response = await self.handler.on_incoming_transaction(
-                origin, transaction_data
-            )
-        except Exception:
-            logger.exception("on_incoming_transaction failed")
-            raise
+        code, response = await self.handler.on_incoming_transaction(
+            origin, transaction_data
+        )
 
         return code, response