diff --git a/synapse/groups/groups_server.py b/synapse/groups/groups_server.py
index c359bfa72b..3599bfe9cf 100644
--- a/synapse/groups/groups_server.py
+++ b/synapse/groups/groups_server.py
@@ -794,5 +794,5 @@ def _validate_group_id(group_id):
if types.contains_invalid_mxid_characters(localpart):
raise SynapseError(
400,
- "Group ID can only contain characters a-z, 0-9, or '_-./'",
+ "Group ID can only contain characters a-z, 0-9, or '=_-./'",
)
diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py
index c7c091f43e..52aa9964d9 100644
--- a/synapse/handlers/register.py
+++ b/synapse/handlers/register.py
@@ -49,7 +49,7 @@ class RegistrationHandler(BaseHandler):
if types.contains_invalid_mxid_characters(localpart):
raise SynapseError(
400,
- "User ID can only contain characters a-z, 0-9, or '_-./'",
+ "User ID can only contain characters a-z, 0-9, or '=_-./'",
Codes.INVALID_USERNAME
)
@@ -255,8 +255,7 @@ class RegistrationHandler(BaseHandler):
if types.contains_invalid_mxid_characters(localpart):
raise SynapseError(
400,
- "User ID must only contain characters which do not"
- " require URL encoding."
+ "User ID can only contain characters a-z, 0-9, or '=_-./'",
)
user = UserID(localpart, self.hs.hostname)
user_id = user.to_string()
diff --git a/synapse/types.py b/synapse/types.py
index efa721273d..88eb818de4 100644
--- a/synapse/types.py
+++ b/synapse/types.py
@@ -162,7 +162,7 @@ class GroupID(DomainSpecificString):
SIGIL = "+"
-mxid_localpart_allowed_characters = set("_-./" + string.ascii_lowercase + string.digits)
+mxid_localpart_allowed_characters = set("_-./=" + string.ascii_lowercase + string.digits)
def contains_invalid_mxid_characters(localpart):
|