--- a/Allura/allura/controllers/auth.py +++ b/Allura/allura/controllers/auth.py @@ -240,17 +240,20 @@ c.form = F.subscription_form subscriptions = [] for mb in M.Mailbox.query.find(dict(user_id=c.user._id)): - with h.push_context(mb.project_id): - if mb.app_config: - subscriptions.append(dict( - _id=mb._id, - project_name=mb.project.name, - mount_point=mb.app_config.options.mount_point, - artifact_title=mb.artifact_title, - topic=mb.topic, - type=mb.type, - frequency=mb.frequency.unit, - artifact=mb.artifact_index_id)) + try: + with h.push_context(mb.project_id): + if mb.app_config: + subscriptions.append(dict( + _id=mb._id, + project_name=mb.project.name, + mount_point=mb.app_config.options.mount_point, + artifact_title=mb.artifact_title, + topic=mb.topic, + type=mb.type, + frequency=mb.frequency.unit, + artifact=mb.artifact_index_id)) + except exc.NoSuchProjectError: + mb.delete() # project went away api_token = M.ApiToken.query.get(user_id=c.user._id) return dict(subscriptions=subscriptions, api_token=api_token)