2 files changed, 4 insertions, 1 deletions
diff --git a/changelog.d/5585.misc b/changelog.d/5585.misc
new file mode 100644
index 0000000000..6be06d4d0b
--- /dev/null
+++ b/changelog.d/5585.misc
@@ -0,0 +1 @@
+Synapse can now handle RestServlets that return coroutines.
diff --git a/synapse/rest/consent/consent_resource.py b/synapse/rest/consent/consent_resource.py
index 624c42441e..1ddf9997ff 100644
--- a/synapse/rest/consent/consent_resource.py
+++ b/synapse/rest/consent/consent_resource.py
@@ -23,6 +23,8 @@ from six.moves import http_client
import jinja2
from jinja2 import TemplateNotFound
+from twisted.internet import defer
+
from synapse.api.errors import NotFoundError, StoreError, SynapseError
from synapse.config import ConfigError
from synapse.http.server import (
@@ -139,7 +141,7 @@ class ConsentResource(DirectServeResource):
else:
qualified_user_id = UserID(username, self.hs.hostname).to_string()
- u = await self.store.get_user_by_id(qualified_user_id)
+ u = await defer.maybeDeferred(self.store.get_user_by_id, qualified_user_id)
if u is None:
raise NotFoundError("Unknown user")
|