Skip to content
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

Open
aneillans opened this issue Aug 14, 2023 · 58 comments
Open

Ability to remove a follower #1160

aneillans opened this issue Aug 14, 2023 · 58 comments
Labels
feature-request A request for a new feature x:discussing We've seen the request and we're talking about it!

Comments

@aneillans
Copy link

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".

@aneillans aneillans added the feature-request A request for a new feature label Aug 14, 2023
@mschwendener
Copy link

Hi

Just out of curiosity: why would you want to remove a follower but not block them?

@aneillans
Copy link
Author

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.

@mschwendener
Copy link

mschwendener commented Aug 14, 2023

I do find the lack of automatic removal of follower status upon block unexpected (and unusual) behaviour.

I agree #1162

@pfrazee pfrazee added the x:discussing We've seen the request and we're talking about it! label Aug 14, 2023
@pfrazee
Copy link
Collaborator

pfrazee commented Aug 14, 2023

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.

@aneillans
Copy link
Author

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.

@littlejackal
Copy link

Hi

Just out of curiosity: why would you want to remove a follower but not block them?

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.

@mackuba
Copy link

mackuba commented Aug 22, 2023

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.

@mschwendener
Copy link

mschwendener commented Aug 22, 2023

I added a note to #1161 that "can't become my follower" would be a good setting in such cases.

@JadeNishikawa
Copy link

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".

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

@serenacloos
Copy link

+1 Please add the option that let’s you unfollow.

@mackuba
Copy link

mackuba commented Jan 3, 2024

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.

@mackuba
Copy link

mackuba commented Jan 3, 2024

Alternatively, we could reuse the block record type and add multiple types of blocks, specified by some additional "type" field: you could have e.g. a block that blocks access to posts like it does now, a block that disallows any interaction but doesn't hide your posts, and a block that just disallows following like described above. (But this might be too hard to implement in the UI in a way that's easy to understand…)

@pfrazee
Copy link
Collaborator

pfrazee commented Apr 25, 2024

We could have some additional record type for this purpose, let's say an "unfollow" or "softblock" or "denyFollow" record.

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.

@rszasz
Copy link

rszasz commented Jun 1, 2024

Just a follow-up if this has been implemented or is still an open request.

@mackuba
Copy link

mackuba commented Jun 1, 2024

Nope, still just an idea at this point

@IPv6
Copy link

IPv6 commented Jul 16, 2024

Alternatively, we could reuse the block record type and add multiple types of blocks

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"

@ygg2
Copy link

ygg2 commented Aug 17, 2024

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...?

@AdamTheoDotCom
Copy link

I really like this solution since it uses positive public records of approvals instead of a punitive "block-like" record.

bluesky-social/atproto#1352

@IPv6
Copy link

IPv6 commented Aug 18, 2024

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 :)

@scottdotweb
Copy link

scottdotweb commented Aug 18, 2024

I really like this solution since it uses positive public records of approvals instead of a punitive "block-like" record.

bluesky-social/atproto#1352

Blocking an account isn't "punitive" and it's an entirely erroneous direction to attempt to ascribe moral values to the data.

@valzargaming
Copy link

valzargaming commented Aug 28, 2024

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.

@chk-L
Copy link

chk-L commented Aug 30, 2024

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?

@lunaynx
Copy link

lunaynx commented Aug 30, 2024

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.

@mackuba
Copy link

mackuba commented Aug 31, 2024

I think Paul said he was working on some ideas for this last week

@ICEknigh7
Copy link

And there's also this related problem here: #2028

It's impossible to unfollow somebody who blocked you.

@JoshMLeslie
Copy link

JoshMLeslie commented Nov 12, 2024

Alternatively, we could reuse the block record type and add multiple types of blocks, specified by some additional "type" field: you could have e.g. a block that blocks access to posts like it does now, a block that disallows any interaction but doesn't hide your posts, and a block that just disallows following like described above. (But this might be too hard to implement in the UI in a way that's easy to understand…)
@mackuba

A bit aside, but while digesting this thread I whipped up a quick button as I imagined this. I think giving people granular control has merit.
image

edit: comment attribution

@scottdotweb
Copy link

"A block that disallows any interaction but doesn't hide your posts" - I believe the name for this is "the Elon".

@Tyri0n
Copy link

Tyri0n commented Nov 15, 2024

Please add this. I don't want any followers.

@surfdude29
Copy link
Contributor

And there's also this related problem here: #2028

It's impossible to unfollow somebody who blocked you.

It's impossible through the app, and I agree that should be fixed, but you can use this great tool to do it:

https://cleanfollow-bsky.pages.dev/

@cooljeanius
Copy link

A bit aside, but while digesting this thread I whipped up a quick button as I imagined this. I think giving people granular control has merit. image

edit: comment attribution
@JoshMLeslie

I think something like this would be useful, but it'd be important to clarify the terminology first. Is "Block User" just the combination of the other two options, or would it do additional things?

@markski1
Copy link

markski1 commented Nov 17, 2024

Even if for some reason implementing this explicitly was something "to be discussed". Is there any technical reason why blocking and unblocking doesn't force an unfollow? If it's just a matter of implementing it, is there any reason why it shouldn't be this way?

@MasterJ93
Copy link

Even if for some reason implementing this explicitly was something "to be discussed". Is there any technical reason why blocking and unblocking doesn't force an unfollow? If it's just a matter of implementing it, is there any reason why it shouldn't be this way?
@markski1

This is has been answered here but the TL;DR is this:

  • It's impossible to do this since there are users who have servers that are not run by Bluesky.
  • When you follow someone or block someone, it creates a record.
  • The block record basically overrides the behaviour of the follow record, but can't delete the follow record itself.
  • There can (and will) be servers that will simply disrespect or ignore the demand to delete a follow record.
  • They don't exactly know how to solve this at this time.

@ICEknigh7
Copy link

  • It's impossible to do this since there are users who have servers that are not run by Bluesky.
  • When you follow someone or block someone, it creates a record.
  • The block record basically overrides the behaviour of the follow record, but can't delete the follow record itself.
  • There can (and will) be servers that will simply disrespect or ignore the demand to delete a follow record.
  • They don't exactly know how to solve this at this time.

Does Mastodon have this problem, as well?

@thealexparadox
Copy link

thealexparadox commented Nov 18, 2024

Does Mastodon have this problem, as well?

No. There are several ways to remove unwanted followers on Mastodon (blocking, soft-blocking, or there's a tool in the user prefs).

@Tamschi
Copy link

Tamschi commented Nov 18, 2024

  • It's impossible to do this since there are users who have servers that are not run by Bluesky.
  • When you follow someone or block someone, it creates a record.
  • The block record basically overrides the behaviour of the follow record, but can't delete the follow record itself.
  • There can (and will) be servers that will simply disrespect or ignore the demand to delete a follow record.
  • They don't exactly know how to solve this at this time.

Does Mastodon have this problem, as well?

It's a bit easier in ActivityPub since follow intents, acceptance and recovation are all direct instance-to-instance communication and follows are followee-authoritative at the protocol level to an extent (because the publisher can just choose not to send/share specific content to an instance), though order of activities may be very shuffled there.

The way ActivityPub apps (formally) deal with the latter is that Follows (usually!) have unique identifiers that can be targeted directly by a Reject or indirectly by an Undo of an Accept.
It's also possible for (some of) these objects to be anonymous, but then the sending instance has to use strict(er) outbox ordering.

Bluesky could do the latter too. app.bsky.graph.follows have unique at://-URIs and CIDs, so a follower-removal can link to that specific record and then the removed follower can refollow by creating a distinct ….follow-record. The end state would be consistent even if all records stick around or are seen in any order between the repositories, though ….follows can optionally be garbage-collected when following the same user anew.
It likely would increase AppView processing requirements a bit, since they would have to do more detailed record-keeping of follows.

Unlike in ActivityPub, on ATProto this would be enforced only by the AppView, but I think that's enough since it works well for blocks already.

@perigozin
Copy link

Even if for some reason implementing this explicitly was something "to be discussed". Is there any technical reason why blocking and unblocking doesn't force an unfollow? If it's just a matter of implementing it, is there any reason why it shouldn't be this way?
@markski1

This is has been answered here but the TL;DR is this:

  • It's impossible to do this since there are users who have servers that are not run by Bluesky.
  • When you follow someone or block someone, it creates a record.
  • The block record basically overrides the behaviour of the follow record, but can't delete the follow record itself.
  • There can (and will) be servers that will simply disrespect or ignore the demand to delete a follow record.
  • They don't exactly know how to solve this at this time.

That's why Bluesky will never be the next big social network. Being so reliant on a broken protocol and refusing to change will be it's demise.

@IPv6
Copy link

IPv6 commented Nov 19, 2024

Being so reliant on a broken protocol and refusing to change will be it's demise.

It`s a normal technical limitation, which actually make protocol robust, with single point of responsibility for user data.
Quite understandable limitation given open nature of all connections, this feature inherently require CENTRALIZATION of PDS control. And with control centralisation a lot worse things may happen down the road (just look into Musk's X-hole)

May be devs will be able to mitigate the issue by ability to delegate PDS hoster of unwanted follower to do basic stuff? Like unfollow by request from other trusted PDS hosters. That way majority of users will have the feature, and rogue hosters can be just blocked

@SupremeSimon
Copy link

Hi

Just out of curiosity: why would you want to remove a follower but not block them?

I'd like to add my own reasoning for why. I recently joined Bluesky, and was immediately followed by someone, bot or not, who was just trying to get their only fans popular... I'm not interested in that. I get that far too much on Twitter, I hate it. I don't want anyone ever reviewing my following and seeing a bunch of only fans people following me... gives of the wrong sort of vibe for my account.

I did block them, but it would appear that the block doesn't remove them from the follower count, which is arguably a minor issue / bug.

I still would like this feature if it's something that can be done.

@piecevcake
Copy link

Just out of curiosity: why would you want to remove a follower but not block them?
Because blocking doesn't stop them following you.

@Everian-H
Copy link

Everian-H commented Nov 23, 2024

Wanting to chime in here on "why would you want this instead of just blocking" : I'm part of a fairly niche group of users, and we recently put together some starter packs for the community. These starter packs are now being followed en masse by, largely, highly political accounts. I don't need to block these people because they can live their lives, but now I have nearly 100 followers (almost 20% of my total) who have no interest in what I post and only followed me to get a follow back. Feels bad, man.

@SandroPacella
Copy link

+1. Having an artificially inflated follower count due to accounts that can't be removed makes the social experience feel less authentic. It's not just about the unwanted followers themselves, but about having accurate metrics that reflect real engagement and genuine community connections. The current situation where blocked users remain as followers creates a disconnect between the displayed numbers and the actual active community around something/someone.

@pernsdorff
Copy link

Hi

Just out of curiosity: why would you want to remove a follower but not block them?

I don't see a good reason not to be able to manage your followers. There seem to be accounts that automatically follow someone as a way to get themselves followed -- usually do not care about that other account content.
This is a fake a trolling method of gaining metrics for themselves and hoping you click the follow-back.

In my mind the best feature is to allow you to control that a Follow request has to be "accepted".

Blocking and Follow are different unrelated purposeful activities.

@avazig
Copy link

avazig commented Nov 27, 2024

I also hate how my followers number is inflated by bots and engagement farmers despite having blocked them.

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.

@TomasHubelbauer
Copy link

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.

@piecevcake
Copy link

Hi

Just out of curiosity: why would you want to remove a follower but not block them?

You can't see posts of accounts you have blocked.
If you unblock them they are still following you.

@maximedrouhin
Copy link

maximedrouhin commented Nov 29, 2024

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?

@hvdijk
Copy link

hvdijk commented Dec 1, 2024

@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:

  1. Wanting to remove a follower so that they no longer get notified of your posts
  2. Wanting to remove a follower so that others do not see that they are following you

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.

@Yowlen
Copy link

Yowlen commented Dec 2, 2024

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.

@SystemsOperator
Copy link

SystemsOperator commented Dec 7, 2024

Definitely want this and, this request may be related:

#6330 (comment)

  • Mute YOURSELF (your own posts, others' reposts of you) for another user.
    Unlike blocking, this shouldn't be public. Rather, a safer, private way to lessen chances of interactions from some users.

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.

@joedinoto
Copy link

joedinoto commented Dec 8, 2024

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?).

@davimack
Copy link

davimack commented Dec 9, 2024

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.

@colinstu12
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request A request for a new feature x:discussing We've seen the request and we're talking about it!
Projects
None yet
Development

No branches or pull requests