1 files changed, 9 insertions, 0 deletions
diff --git a/synapse/rest/synapse/client/new_user_consent.py b/synapse/rest/synapse/client/new_user_consent.py
index e5634f9679..488b97b32e 100644
--- a/synapse/rest/synapse/client/new_user_consent.py
+++ b/synapse/rest/synapse/client/new_user_consent.py
@@ -61,6 +61,15 @@ class NewUserConsentResource(DirectServeHtmlResource):
self._sso_handler.render_error(request, "bad_session", e.msg, code=e.code)
return
+ # It should be impossible to get here without having first been through
+ # the pick-a-username step, which ensures chosen_localpart gets set.
+ if not session.chosen_localpart:
+ logger.warning("Session has no user name selected")
+ self._sso_handler.render_error(
+ request, "no_user", "No user name has been selected.", code=400
+ )
+ return
+
user_id = UserID(session.chosen_localpart, self._server_name)
user_profile = {
"display_name": session.display_name,
|