diff --git a/master/buildbot/status/web/builder.py b/master/buildbot/status/web/builder.py index e34da75d3a21..804ebf5c7fa7 100644 --- a/master/buildbot/status/web/builder.py +++ b/master/buildbot/status/web/builder.py @@ -43,12 +43,18 @@ def force(self, req, builderNames): master = self.getBuildmaster(req) authz = self.getAuthz(req) owner = authz.getUsernameFull(req) - username = authz.getUsername(req) - user_id = authz.getUserInfo(username).get('uid') scheduler_name = req.args.get("forcescheduler", [""])[0] args = self.decode_request_arguments(req) - args['user_id'] = user_id + + # Try to add user_id to args, but it is ok if we can't + # Sometimes external requests do not have sessions data from which + # to extract user information. + username = authz.getUsername(req) + if username: + user_info = authz.getUserInfo(username) + if user_info: + args['user_id'] = user_info.get('uid') if scheduler_name == "": scheduler = master.scheduler_manager.findSchedulerByBuilderName(