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

Admin-level abusive-blocklist deletion does not fully clear blocks for former blocklist subscribers (or let them do it) #6467

Open
rahaeli opened this issue Nov 17, 2024 · 9 comments
Labels
bug Something isn't working

Comments

@rahaeli
Copy link

rahaeli commented Nov 17, 2024

Steps to Reproduce

You'll need three accounts to test this scenario: ListAdmin, Listee, and Subscriber.

  1. ListAdmin makes a bogus moderation list (let's say it's called KittenHaters) and adds Listee to the list.
  2. Subscriber subscribes to KittenHaters and chooses "block". Subscriber now blocks Listee on an inherited basis from Listee being on the KittenHaters list Subscriber is subscribed to.
  3. Bluesky T&S deletes the KittenHaters list because ListAdmin is accusing people of the heinous crime of hating kittens.
  4. Subscriber can now see Listee's account again! Except a lot of remnants of the block still linger:
  • Subscriber will still see the "Blocked by KittenHaters" message on Listee's profile
  • Subscriber will still not see Listee's account profile header image
  • Listee's icon/profile pic will still be blurred
  1. Subscriber can also interact with Listee again! Except a lot of remnants of the block still linger:
  • Subscriber's reply will appear in Listee's notifications
  • But Subscriber's reply will not show in thread view if you click the post of Listee's that they replied to
  • If you click on Subscriber's reply (such as from a feed, notification, quote post, etc) the parent shows as "Blocked post"
  • If you view Subscriber's reply on a feed, the reply line shows as "Reply to a blocked post"
  1. The KittenHaters list no longer appears in Subscriber's "moderation lists" section of their settings, and there is no way for them to unsubscribe from the list and fix any of the above symptoms of the lingering block.
  2. If Listee views Subscriber's profile, they can see the posts, comments, header image, profile pic, etc, but they also see the "User blocking you" bug between the user's bio and their posts.

I am Listee in this situation, not Subscriber, so there may be other lingering effects that I couldn't identify since I didn't want to walk the various Subscribers through a full range of "what does it do if you do X" questions, but basically it looks like the inherited block from a list you're subscribed to is being cleared for the purpose of "can I see the contents of this account" but not for pretty much anything else when the list is deleted for being abusive.

Attachments

No response

What platform(s) does this occur on?

iOS, Web (Desktop), Web (Mobile)

Device Info

No response

What version of the app are you using?

Build version: 1.93.0; Bundle info: 5f449e3 (prod); Bundle date: 24111700; Platform: web

Additional Information

I have verified that this happens in the iOS client, mobile web, and desktop web; I don't have an Android device around to try it on that, but I can't imagine it wouldn't be the same there. I dithered between whether this should be put in bluesky-social or atproto because I suspect this might be a protocol-level issue, but I can only verify that it's happening on bluesky-social so I stuck it here to be on the safe side!

@rahaeli rahaeli added the bug Something isn't working label Nov 17, 2024
@owendaprile
Copy link

I'm also seeing this issue from a moderation list that I subscribed to (muted, not blocked) from an account (ListAdmin) that was banned. The users (Listees) from that list are still muted in replies (and likely in feeds too.) I have been unable to find where the moderation list subscription record is actually stored in my PDS repo in an attempt to manually delete it and hopefully fix the issue for me.

@owendaprile
Copy link

This actually just happened to me again with a list I subscribed to this morning. It seems that the account owner was suspended today and I was stuck subscribed to another phantom list. It's still possible to unsubscribe from one of these lists with these steps:

  1. Determine the list's AT URI by finding a Listee's profile, clicking on the label, and clicking the link to the list. You can then convert the DID and rkey in the URL to a URI with those values and the app.bsky.graph.list collection.
  2. Manually send the app.bsky.graph.unmuteActorList/app.bsky.graph.unblockActorList request to your PDS with the AT URI of the list in the body.

@rahaeli
Copy link
Author

rahaeli commented Nov 19, 2024

Add to the symptoms list: Subscriber can repost Listee, using the repost button in the app even, but the subsequent repost shows up as "Blocked" in the repost card.

@meicpalmer
Copy link

I can confirm that I've witnessed this issue too.

I'm not sure whether the blocklist in question was deleted by the Bluesky admins or if it was deleted by the user who made it.

@juliabushue
Copy link

@owendaprile Sorry if this is an obvious question, but could you spell out exactly how to format that unmuteActorList pds request? I know just enough to get in trouble, but I'm subscribed to a deleted overly-aggressive mod list and it's driving me crazy.

I'm using pdsls.dev to access my records and I have the list uri (which doesn't show up in my listblock records). There's just one entry field in the UI and no separate body field. Do I create a new record?

Image

If you have the bandwidth to answer this, I'd really appreciate it!

@owendaprile
Copy link

@juliabushue Here's how I did it:

  1. Go to the account of a user who's muted by the list you're subscribed to.

  2. Click on the 'Muted by "<list>"' label on their profile.

  3. Open the link to the list in that dialog.

  4. Get the DID of the list owner and the rkey of the list from the URL. (For example, with this URL: https://bsky.app/profile/did:plc:zhxv5pxpmojhnvaqy4mwailv/lists/3lgechvna3d2q, did:plc:zhxv5pxpmojhnvaqy4mwailv is the owner's DID, and 3lgechvna3d2q is the rkey.

  5. Convert that to an AT URI like this: at://<owner's DID>/app.bsky.graph.list/<list rkey>. (The URL above would be this: at://did:plc:zhxv5pxpmojhnvaqy4mwailv/app.bsky.graph.list/3lgechvna3d2q).

  6. Get an access token using the com.atproto.server.createSession request using your handle and an app password.
    Image

  7. Send the app.bsky.graph.unmuteActorList using the access token as the Authorization header. The body should be JSON with one field named list with the value being the AT URI from before.
    Image
    Image

I sent the API requests using Insomnia, but you could use something like Postman or curl too.

Hopefully this helps! I don't think you can do it through PDSls because it seems like mute subscriptions are stored in the AppView, not the PDS.

@juliabushue
Copy link

Thanks for getting back to me! This is on the edge of my comfort zone (I don't do command-line stuff that often) but your instructions were very clear, so I'm going to give it a try.

@juliabushue
Copy link

@owendaprile THANK YOU again for your help. It took me a bit, but I managed to figure it out!

@surfdude29
Copy link
Contributor

Good news: one of the Bluesky devs who works mainly on the backend said here that an update that was merged a few hours ago should fix this issue 🙌

I don't know if the fix has been deployed yet, but the fix is at least on the way (I haven't tested it myself to see if it's already fixed).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants