-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ability to remove a follower #1160
Comments
Hi Just out of curiosity: why would you want to remove a follower but not block them? |
Good question; its more a friend dynamic I've observed on other network occurring at times (not sure it's one I entirely subscribe to myself, but hey ho). They seem to remove people they are ... not talking to ... but are in the same friend circles without outright blocking as it can cause issues on some networks when following conversation threads etc. However, I do fine the lack of automatic removal of follower status upon block unexpected (and unusual) behaviour. |
I agree #1162 |
This is something we've discussed pretty heavily internally -- we don't yet know how to do it reliably. The issue is that every user controls their own dataset. When I "follow" somebody, what I'm doing is publishing a follow record on my account. When I block somebody, same thing: I publish a block record. A block record can override the behaviors of a follow record, but it can't force-remove the follow record from somebody else's repository. We have discussed a voluntary removal of the follow record. That is, if somebody blocks me, my server automatically deletes my follow record. The only concern is that it's impossible to force. A server that's misbehaving (intentionally or not) wouldn't delete the follow record, so there would be some confusing scenarios where soft-blocks don't work. That led to some discussion of whether we could try to enforce voluntary behaviors by social pressure (eg "Follow the protocol or your server will be penalized") but we haven't established a framework for that kind of governance yet so we're hesitant to move forward with it. A subsequent proposal to require "follow requests" has been discussed (bluesky-social/atproto#1352) which is technically feasible but adds a little more friction than we want for the default model. That leaves us where we currently are, which is tracking these two options but not ready to move on either yet. |
Either the voluntary removal, or an additional record type of a literal soft-block to let you track or flag when a remote account should do that removal next time it refreshes or "sees" the records? Just trying to think about how it all works on the Fediverse, and while the same misbehaving server issue remains there (you will never remove that chance IMO in a distributed environment), but as you can say you can potentially govern on some avenues. |
I agree with the original request although I can't exactly articulate why this is desired vs outright blocking without citing vague concepts like how blocklists are perceived and unnecessary follower association "feels". Not being a public or notable figure it was plainly obvious which accounts were simply engaging in bot-like behaviour or follower-spam and which were genuinely interested in interacting with me and my content. I routinely pruned mass-follow accounts when it made sense, but it was by no means a scientific process. From a day to day perspective there's no difference at all to my bsky experience whether "@buy-bitcoin-cheap-today.bsky.social" follows me or not; they're unlikely to ever actually interact with me in any meaningful way. But when I look at my follower list I see "friend, friend, friend, acquaintance, artist I'm interested in, news org, obvious mass-follow account, friend" and I'm just left with a vague desire to prune. On birdsite it was easy enough to block/unblock, took two seconds and I'd most likely never see the account again, but it sounds like there are technical reasons this may not be feasible here. Leaving a profile on a blocklist I found to have a connotation of engaging in (actively) unacceptable activity and being a profile I really and truly do not wish to interact or be associated with, but again, I can't cite anything other than personal preference on this. If blocking is the best feasible solution to a mass follow profile showing up on my "Followers" list then this is certainly not a hill I'm willing to die on -- I'll be happy to keep blocking mass follow accounts and lump them in with accounts I actively want to prevent interacting with me. No real solutioning in this reply, but hopefully this mirror the way others feel. |
Yup, pretty much this @littlejackal. As someone with a fairly small account, I like to look at my follower lists / follower count, and see that I'm followed by let's say 200 people who are interested in what I post. Accounts like that anime pictures one that follows 100k profiles obviously aren't reading what I post, so they are just inflating that follower count artificially. This obviously doesn't apply above some level of follower count where looking at the list or even reading follow notifications stops making sense. |
I added a note to #1161 that "can't become my follower" would be a good setting in such cases. |
as of right now bluesky now has a bot issue because of people posting their invite codes on twitter/x right now you can block followers you don't want accessing your profile but it doesn't completely remove them i think follower removing like twitter/x has would be a great idea so you can keep tabs on real followers and weed out the fake ones |
+1 Please add the option that let’s you unfollow. |
Copying here what I wrote on Bluesky about how this could be handled: We could have some additional record type for this purpose, let's say an "unfollow" or "softblock" or "denyFollow" record. This would be like a reverse, negative follow, a record that you'd add to your repo, pointing in the opposite direction, indicating that you don't want to be followed by that account (it would be a permanent effect until you delete the record, not a one-time thing like classic "soft blocking" is on Twitter; the user would see the follow button disabled on your profile). The way it would work is that AppView would take that into account and would make it seem as if the user is not following you, even though they technically have a follow record pointing to you. It would effectively make that follow from them to you disappear, even though the record is there. The precedent for this is how posts are handled in AppView in the context of blocks and thread gates. If someone replies to you and you block them, that comment "disappears", even though there is still a post record in the author's repo - but AppView pretends that it doesn't exist. In the same way, it would pretend that the follow record doesn't exist. |
Alternatively, we could reuse the |
That really isn't an absurd thought, now that I consider it. It's still somewhat public but, you know, wcyd. It's actually possible to do this permanently (disabling the follow option for the subject) or on a one-time-basis by simply including the URI of the follow you want to disable. |
Just a follow-up if this has been implemented or is still an open request. |
Nope, still just an idea at this point |
Sounds reasonable and useful. There is a gradient of possible/wanted "feedback from other followers", where block is one of the extreme final "do not welcome here" status, and softblock more like "don`t bother me on each post please" |
I'm inclined to think both are useful - the idea of a public denyFollow record that prevents someone from ever following again seems like a nice feature, but it'd still make sense to be able to ask the server to remove its follow record, since then any other behavior that relies on follows would work as expected, and people wouldn't be able to look up who has softblocked them later. A server could decide not to comply, but in the grand scheme of things, they can already be non-compliant in other areas like deleting content or removing spammers. Maybe request the server to delete the follow, but in the event a server doesn't comply, there can be an AppView override...? |
I really like this solution since it uses positive public records of approvals instead of a punitive "block-like" record. |
5 centes: facebook-like approves is a different approach to twitter's "block/softblock". And softblock imho better one. Approve puts a difficulties/discomfort on the follower, make it harder to subscribe. it is visible on facebook - friend requests are sent either by spammers or after private messaging, good connection "out-of-blue" are rare. Facebook even faking friend requests by sending spoofy suggestions. Denies hurts a little and after several denies average user just dump the feature. On twitter following is much more lightweight, does not prevent organic followers grow and softblock is not a "deny" - it`s an option to not see follower in own feed, allowing him to see what he want in his feed. No regrets, no dumping feature by users :) |
Blocking an account isn't "punitive" and it's an entirely erroneous direction to attempt to ascribe moral values to the data. |
If this feature were implemented, wouldn't it also be beneficial to extend the ability to restrict access across the entire platform, rather than just individual users? For example, it could be useful to allow accounts to restrict access by permitting interactions only from followers associated with a specific @domain.tld, or conversely, to block all interactions from accounts associated with a specific @domain.tld. By separating permissions into separate allow/disallow elements it would enable servers to enforce their own user's settings without infringing on the settings of others. |
So, a year later, there is no option to remove a follower? I'm new to this social media, so I'm not aware of everything, but I tried to block an account and it wasn't effective. Any alternatives? |
Blocking an account will sort of make them effectively no longer follow you, but if you unblock them they will be following you again. Still no way around this as far as I know. |
I think Paul said he was working on some ideas for this last week |
This was a huge problem on the other place. Even if we disregard the algorithm, having hundreds or thousands of inactive followers did add to the feeling of shouting into the void. I was to be able to rid myself of low-value followers, and that includes the numbers. |
I'd also like to curate the list of people that follow me. Blocks serve a different purpose. Removing someone's follow could be an extra record that overrides the behavior of the follow record they published. It is okay for it to be public IMO. If it is not possible to prevent someone from following me due to the decentralized nature of the service, I think hiding your own followers in the list (and the counter on the profile screen) without preventing them from subscribing to your posts would be helpful, too. |
You can't see posts of accounts you have blocked. |
In my understanding, most people here want the ability to remove followers because of spam follows by bots/people hoping for a follow-back. Having granular control over your followers is of course a great way to fix this, but maybe this should be accompanied by a button to report abusive follows? The consequences can start with a warning, continue with a temporary disablement of the follow option, etc, and should of course include the removal of suspected abusive follows (follows in quick succession before and after reported follows). This might be able to prevent most of the spam follows at the source? |
@TomasHubelbauer hit the nail on the head, IMO: it has not been clearly covered that there are two different reasons for wanting to remove a follower that do not need to be handled the same way:
The focus here has been on looking for a single solution that covers both cases. But a single solution does not need to cover both cases: Case 1 can be handled by voluntary removal. As mentioned, yes, misbehaving servers could fail to honour this. But that is not an issue. This is roughly equivalent to, on other platforms, someone who keeps re-following after a soft block. On those other platforms, there is a simple solution for this: that is reason enough to upgrade the soft block to a hard block. Case 2 can be handled by having a way to hide followers rather than remove them. There are accounts that follow me where I do not care whether they see what I post, but if someone looks at my account to see who is following me, I would rather not have those followers visible for whatever reason. When someone looks at my profile, I should have control over what people see. If some of the data has to come from external servers that BlueSky have no control over, I should still have a say in whether that data is included. |
Honestly, this needs to be fixed sooner rather than later. It's a vulnerability at this point. Transphobes are exploiting this (among other vulnerabilities in the platform) to send thinly veiled threats and transphobic messages to trans people. They've been making a ton of sockpuppet accounts with these kinds of messages in their bios, mass following trans people and allies, and as they get blocked, they simply make more, rinse and repeat. The inflation of follower counts might ultimately be a byproduct of this tactic, but when a trans person has more followers that want to kill them than ones that genuinely want to interact with them, it has its own negative effect on our mental health. |
Definitely want this and, this request may be related:
Edit: in another thread, someone mentioned that bad actors could use self-mute as another harassment tactic, so it may not be the best solution specifically. But we need something that fulfills the goal, bolded. |
Adding my voice to the chorus. Requesting the ability to remove a follower. I joined up to grab my username and immediately had a spam storefront account follow me. I can block it sure, but now my page has "1 follower", even though I have blocked that account. I've also reported the account. edit - is there at least a way to approve users who want to follow me? "You have n new follow requests." and then approve/deny each one (and a tick for approve/deny all?). |
There are safety issues not addressed in the general discussion, I think. If someone exhibits creepy behavior and you don't want them to be aware that you've noticed them, for example. They may regard blocking as paying attention to them, create another account, and return. Blocking = encouragement. |
Blocking can cause more alarm and damage than doing nothing. Please add the ability to remove followers. Especially with Bsky making blocks so public too. That or give the ability to block without them knowing somehow. But that will never happen. So yeah, bring the ability to remove a follow. |
I believe a good intermediary solution to some of the concerns here, which does not require protocol changes and can likely just be handled by the AppView, would be to subtract blocked users from the follower and following counts. They already appear to be hidden from the lists, at least for me as the blocker. |
I’ve read about 75% of this issue. I’m confused.
I mean these two questions with no disrespect, just poking fun at the head-scratcher that it is. I love Bluesky and appreciate the massive effort going into it! Best social media experience ever, thank you all! |
Blocks and followers are simple when there is one database and one company to rule them all. But BlueSky specifically tries to evade centralised solutions. Specifically BlueSky is not in position of sole control over user data, there are limits between how data can be changed inside users local storages. This is like multiplayer games, where gamers can cheat - and as we live in real world - they definitely WILL cheat. So the problem is to have base solution that CAN NOT BE CHEATED. Currently that leads to system with list of personal blocks and removing follower is not that directly possible - since user data handler (game client) can simply reject any removing. Removing is not enforceable |
Is there a short-term solution, though? If that short-term can address 99% of the problem, and doesn't present much of a programming burden, then it would be better than waiting for a long-term solution, particularly as the long-term solution seems intractable within the current architecture. Cheating happens. Sometimes a pragmatic approach is better - making it difficult will make it painful to repeatedly violate the block, and so the adversary loses interest. Sometimes. |
I appreciate the explanation! |
I know the problem with bluesky's system. Bluesky even not visually remove these account in the follower number, make user more comfortable with UX. let user not to feel these annoying. Please |
I agree with @fukahire 's sentiment. Perhaps the easy solution for the time being, at least to increase the user's feelings of safety, is to simply hide data instead of actually deleting it. That is:
This is not a perfect solution - User A will still know I blocked them, which could generate enmity. However the part of knowing the number of genuine connections I have, and the sensation of being able to curate my own experience, will prevail. But perhaps a quicker temp solution would increase user satisfaction while the gordian knot is being cut. |
What you are asking for is already implemented except for the follower count. If Alice follows Bob, Bob blocks Alice, and Charlie looks at Bob's followers, Charlie already does not get to see Alice. I know this because I tested this before posting this comment. What is the reason you think Charlie does still get to see Alice? This issue is about what happens if Bob subsequently decides to unblock Alice. Your workaround for that is to just keep Alice blocked. For me and for others here, that is not an acceptable workaround. |
My focus was indeed on the follow count, however I agree, it is not a proper solution in the grand scheme of things. Sorry. |
Here's my take Each user could have their own public "accepted followers" list, a private "rejected followers" list, a private "pending" followers list, and a private rule setting for whether new followers get added to the pending list or automatically to the accepted followers list automatically (effectively implementing follow requests). Any user should only be able to be in at most one of these lists, but that will be up to server compliance. It will be up to the client to decide whether the "followers" number on A's profile will be total followers list (calculated by users following from the outside) or the accepted followers list (maybe the client could call the total followers list "watchers" or similar, since you don't control who watches you). I think this solves a couple issues, like if a user A follows user B, but A isn't in B's accepted followers list, only B knows whether that user is intensionally rejected or unmeaningfully pending, so it's not the same weight as a block or mute. This approach doesn't change whether A appears to be following B from A's perspective, but again clients could choose to label A's following list as a "watching" list, and only having users that have A in their accepted followers list be in A's apparent following list. What do we think of that? |
Kinda crazy how a year and a half later there is still no solution to removing unwanted followers from your follower count number and your Follower list. Literally every single other Social Media Platform has solved this mystery already. There is no reason why we should have to deal with inflated follower counts due to spam bots following us. If I block someone they should absolutely be removed from my follower list and follower count |
How difficult can it be to have the follower counter do: |
It's ridiculous now. Since there is no soft block I have to block half a
dozen accounts per day: grifters, porn bots and accounts I want nothing to
do with.
Within a year I'll have thousands of blocked followers inflating my numbers.
It's unacceptable that we don't have ownership of our own followings and
followers.
…On Sat, Jan 11, 2025, 17:49 ICEknigh7 ***@***.***> wrote:
How difficult can it be to have the follower counter do:
if(follower is blocked)
don't count
else
followers++
—
Reply to this email directly, view it on GitHub
<#1160 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BNIP2X7HJLNSYI6TBX6SOEL2KFKSDAVCNFSM6AAAAAA3PS5OBCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKOBVGM2TKNJYG4>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Apparently it might be close (current version): https://github.com/bluesky-social/atproto/blob/d97272de0bef835a8e64e7e924e21e9bb5d012f2/packages/bsky/src/data-plane/server/indexing/plugins/follow.ts#L87-L100 const followersCountQb = db
.insertInto('profile_agg')
.values({
did: follow.subjectDid,
followersCount: db
.selectFrom('follow')
.where('follow.subjectDid', '=', follow.subjectDid)
.select(countAll.as('count')),
})
.onConflict((oc) =>
oc.column('did').doUpdateSet({
followersCount: excluded(db, 'followersCount'),
}),
) That's just for following and unfollowing though, so it would have to be added to https://github.com/bluesky-social/atproto/blob/d97272de0bef835a8e64e7e924e21e9bb5d012f2/packages/bsky/src/data-plane/server/indexing/plugins/block.ts and if you want it to work for list blocks also to https://github.com/bluesky-social/atproto/blob/d97272de0bef835a8e64e7e924e21e9bb5d012f2/packages/bsky/src/data-plane/server/indexing/plugins/list-block.ts (or rather, the calculation should be refactored out to just be reused) and (more problematically) ideally also https://github.com/bluesky-social/atproto/blob/d97272de0bef835a8e64e7e924e21e9bb5d012f2/packages/bsky/src/data-plane/server/indexing/plugins/list-item.ts, though there it would have to fan out to be applied to all who blocked the moderation list and I'm not sure if the current architecture would auto-deduplicate those tasks. I suspect that last point could get very heavy for popular lists that are frequently updated, but other than on list-item the load probably isn't too awful? Definitely much heavier than currently though, unless a DB index that takes blocks into account already is also created. The current one can respond with the raw total follower count immediately, but likely not if you exclude all blocks from that. Depending on how you look at it, a temporary desync after list edits might be acceptable to get this implemented. (This doesn't concern the followers list displayed to third parties, that's somewhere else in the code that's harder to find. I also can't make a PR with these edits here, I'm too unfamiliar with the database system that's used and definitely don't have the resources to benchmark it.) |
Looks like the atproto-side issue tracking this is bluesky-social/atproto#1803 |
Feature request: Ability to remove a follower from your followers, either via soft block (block and unblock) or via a simple remove process.
At present if you block someone, and then unblock them later they are still following you .. this can be unexpected and is a behaviour pattern that is dissimilar to all other social networks. Additionally, there is no other way to remove a follower from your "herd".
The text was updated successfully, but these errors were encountered: