diff --git a/synapse/federation/transport.py b/synapse/federation/transport.py
index 95c40c6c1be6f04bf8b83efea4bfcdd82396c0ea..b72d7b24df49590a66ba5fe9a5e7291d7ab4be4e 100644
--- a/synapse/federation/transport.py
+++ b/synapse/federation/transport.py
@@ -428,7 +428,8 @@ class TransportLayer(object):
             self._with_authentication(
                 lambda origin, content, query, query_type:
                 handler.on_query_request(
-                    query_type, {k: v[0] for k, v in query.items()}
+                    query_type,
+                    {k: v[0].decode("utf-8") for k, v in query.items()}
                 )
             )
         )