diff --git a/synapse/federation/persistence.py b/synapse/federation/persistence.py
index 865766eb2..1a7cc02f9 100644
--- a/synapse/federation/persistence.py
+++ b/synapse/federation/persistence.py
@@ -99,5 +99,5 @@ class TransactionActions(object):
             transaction.transaction_id,
             transaction.destination,
             response_code,
-            encode_canonical_json(response_dict)
+            response_dict,
         )
diff --git a/synapse/storage/transactions.py b/synapse/storage/transactions.py
index b5b21a9b1..624da4a9d 100644
--- a/synapse/storage/transactions.py
+++ b/synapse/storage/transactions.py
@@ -162,7 +162,8 @@ class TransactionStore(SQLBaseStore):
         return self.runInteraction(
             "delivered_txn",
             self._delivered_txn,
-            transaction_id, destination, code, response_dict
+            transaction_id, destination, code,
+            buffer(encode_canonical_json(response_dict)),
         )
 
     def _delivered_txn(self, txn, transaction_id, destination,