diff --git a/synapse/api/errors.py b/synapse/api/errors.py
index 28b5c2af9b..6d88fda38b 100644
--- a/synapse/api/errors.py
+++ b/synapse/api/errors.py
@@ -85,7 +85,7 @@ class SynapseError(CodeMessageException):
errcode (str): Matrix error code e.g 'M_FORBIDDEN'
"""
- def __init__(self, code, msg, errcode=Codes.UNKNOWN):
+ def __init__(self, code, msg, errcode=Codes.UNKNOWN, softLogout=False):
"""Constructs a synapse error.
Args:
@@ -97,7 +97,7 @@ class SynapseError(CodeMessageException):
self.errcode = errcode
def error_dict(self):
- return cs_error(self.msg, self.errcode)
+ return cs_error(self.msg, self.errcode, self.softLogout)
class ProxiedRequestError(SynapseError):
@@ -383,7 +383,7 @@ class RequestSendFailed(RuntimeError):
self.can_retry = can_retry
-def cs_error(msg, code=Codes.UNKNOWN, **kwargs):
+def cs_error(msg, code=Codes.UNKNOWN, softLogout=False, **kwargs):
""" Utility method for constructing an error response for client-server
interactions.
@@ -394,7 +394,7 @@ def cs_error(msg, code=Codes.UNKNOWN, **kwargs):
Returns:
A dict representing the error response JSON.
"""
- err = {"error": msg, "errcode": code}
+ err = {"error": msg, "errcode": code, "soft_logout": softLogout}
for key, value in iteritems(kwargs):
err[key] = value
return err
|