diff --git a/changelog.d/4361.misc b/changelog.d/4361.misc
new file mode 100644
index 0000000000000000000000000000000000000000..020dacb5476920be23118e21397469f6b7f4760a
--- /dev/null
+++ b/changelog.d/4361.misc
@@ -0,0 +1 @@
+Add better logging for unexpected errors while sending transactions
diff --git a/synapse/federation/transaction_queue.py b/synapse/federation/transaction_queue.py
index 46405134977f61c88c6b21fe442480007484483d..fe787abaebf310ba40e1ae3cf3dd44d5ce342892 100644
--- a/synapse/federation/transaction_queue.py
+++ b/synapse/federation/transaction_queue.py
@@ -522,8 +522,13 @@ class TransactionQueue(object):
             )
         except FederationDeniedError as e:
             logger.info(e)
+        except HttpResponseException as e:
+            logger.warning(
+                "TX [%s] Received %d response to transaction: %s",
+                destination, e.code, e,
+            )
         except RequestSendFailed as e:
-            logger.warning("(TX [%s] Failed to send transaction: %s", destination, e)
+            logger.warning("TX [%s] Failed to send transaction: %s", destination, e)
 
             for p, _ in pending_pdus:
                 logger.info("Failed to send event %s to %s", p.event_id,