From e89bd3ea923cd9d1e33ff1be3c94dc6d838837e0 Mon Sep 17 00:00:00 2001 From: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> Date: Mon, 2 Nov 2020 18:01:09 +0000 Subject: [PATCH] Improve error messages of non-str displayname/avatar_url (#8705) This PR fixes two things: * Corrects the copy/paste error of telling the client their displayname is wrong when they are submitting an `avatar_url`. * Returns a `M_INVALID_PARAM` instead of `M_UNKNOWN` for non-str type parameters. Reported by @t3chguy. --- changelog.d/8705.misc | 1 + synapse/handlers/profile.py | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 changelog.d/8705.misc diff --git a/changelog.d/8705.misc b/changelog.d/8705.misc new file mode 100644 index 000000000..1189464a0 --- /dev/null +++ b/changelog.d/8705.misc @@ -0,0 +1 @@ +Improve the error returned when a non-string displayname or avatar_url is used when updating a user's profile. \ No newline at end of file diff --git a/synapse/handlers/profile.py b/synapse/handlers/profile.py index 14348faaf..74a1ddd78 100644 --- a/synapse/handlers/profile.py +++ b/synapse/handlers/profile.py @@ -189,7 +189,9 @@ class ProfileHandler(BaseHandler): ) if not isinstance(new_displayname, str): - raise SynapseError(400, "Invalid displayname") + raise SynapseError( + 400, "'displayname' must be a string", errcode=Codes.INVALID_PARAM + ) if len(new_displayname) > MAX_DISPLAYNAME_LEN: raise SynapseError( @@ -273,7 +275,9 @@ class ProfileHandler(BaseHandler): ) if not isinstance(new_avatar_url, str): - raise SynapseError(400, "Invalid displayname") + raise SynapseError( + 400, "'avatar_url' must be a string", errcode=Codes.INVALID_PARAM + ) if len(new_avatar_url) > MAX_AVATAR_URL_LEN: raise SynapseError(