Let’s says Tag Group A is visible to Admins only. If its visibility is changed to Everyone, and a normal user sets a tag to Watching for them, once the tag is visible back to that group (e.g. Administrators), the user still watches the tags, and receives notifications, instead of being removed since it’s no longer visible to the normal user. And, the user has no way to remove the Watching status, since it doesn’t show up in the Preferences > Tracking page.
I was trying to repro this on Meta yesterday, and err… the tag group got hidden so I’m kinda stuck with this now (though I still can’t see the tags).
I haven’t been able to repro this. Just to confirm, were these the steps you followed?
- You had a restricted tag group (admin-only), which should prevent non-admins from watching tags.
- You changed the tag group permission to “Tags can be used by everyone” allowing a non-admin user to see and watch a tag in that group.
- Then changed the tag group permission back to admin-only.
Also, which version of Discourse were you experiencing this on?
That’s likely because you don’t have sufficient permissions to manage tag groups here on Meta.
My repro steps:
- (As admin) From a tag group with some tags, set
Tags are visible only to the following groups
[1] to something liketrust_level_0
from some other group the other user is not in - In the other user, watch these tags under their page (set notification status there to ‘Watching’)
- (As admin) Revert the tag group visibility to what it once was, and create a topic with those tags
- Go back to the other user; if you go to
?state=watching
, you will see that topic made (‘Watching’ status not removed)[2]
Thanks, got it.
Confirmed, the “watched” status on topics that became watched solely because a user was watching a tag remains, even if the user later loses access to that tag after tag group permissions change. They’ll continue to receive notifications on those already “auto-watched” topics, but not on new topics created after the change.
I can see the case for treating this as expected behaviour rather than a bug, but I also see the downside of leaving hundreds of topics in a watched state. I’ll leave it to the broader team to decide how we want to handle this.