On the difficulty of automated unblocking

Unblocking the wrongfully-blocked

…is something I’d love to do, but the difficulty is identifying who is really truly wrongly-blocked. For a sense of scale, at last accurate count in 2019, I had well over 150 000 blocks on Twitter. I would estimate having about 200 000 now. Reviewing a block is a forensic process, because as I’ll explain, you cannot just rely on metadata like who follows someone or their bio. Let’s have an extremely optimistic estimate of an average of two minutes per wrongful block, and ten seconds per rightful block. If everyone I’ve blocked should remain there, hand-reviewing the entire list to assure myself of that would take 24 days of non-stop work. When I say non-stop, I mean it would take over 550 hours. If I have even two percent of wrongful blocks, that inflates to over 670 hours. It’s an enormous amount of work.

But surely, I can automate a large part of it. Reader, I tried. Over several months. It turned out that my block list is extremely varied. Or rather, the people on it are varied. Or rather, the way the people on it present to me, the information I have available about them, is extremely varied. I don’t have much: I have their username, display name, bio, location and website fields, and maybe a few of their tweets if I write some scripts. I can put all that in a database, so I can process the large amounts of information all of this adds up to. And then what?

There are some terms in bio I can outright block, right? Like MAGA. Right? Right? R i g h t ?

Well, fuck. (For the record, five links above contained text such as “I will block MAGA trolls”, and one is someone literally named Madumaga.) And I don’t even follow any of these people, this is just 30 seconds of searching. Okay, maybe exclude the ones that mention MAGA and block, or MAGA and troll, or some other combinations, surely that would work, right?

Lol, fuck.

Okay but surely someone who only has the word MAGA and not any of these other ones is a real one, right?


(For the record, the first two are genuine MAGA people who block anti-MAGA “trolls” and the last one is a genuine person whose bio speaks, without using any of the obvious keywords, of them being previously banned due to harassment by MAGA people.)

And this is a comparitively simple one. Try to do the same for transphobes, and it’s a quagmire. But hold on, maybe I should do the inverse and identify people who are clearly not transphobes. Like, maybe someone who has pronouns in their bio and identifies as trans is fairly easy to search for? And surely they would be on the “unblock” candidate list? Boy oh boy. For one thing, truscums are a thing. For another, intersectionality cuts both ways.

See, it’s perfectly possible to have trans racists, gay sexists, lesbian transphobes, feminist anti-vaxxers. Assholes often have layers. But also, everyone can be an asshole. There is not a single group of people whose grouping attribute makes them free of the potential to be an asshole.

Even if there was, there would be no reliable way to identify that group from their bio, or who they follow, or who they’re followed by, or even scanning some of their tweets.

Don’t believe me? Simple thought experiment: say there is such a marker. What is the first harasser who comes across it gonna do?


And then there’s forgiveness. There’s a service run by fellow kiwi Tom Eastman called Secateur which lets you block people (and optionally all their followers, it’s the “block script” I mention in one of the historical block reasons above) temporarily. The idea is this: people change. So blocking them now might be good, but they might see the error of their ways or listen to the right person or learn some damn empathy somehow, and now they’re not someone you want to block anymore, right?


There are three reasons why I don’t use it or something like it:

  1. It’s another tool.

I block a lot. I block quickly, I don’t take two minutes to think about it. I block on tweetdeck, I block on mobile. It’s never going to be a good fit for me to have to open a separate app, copy or type a username across, and hit go. That’s too much work. 99% of the time,† I just want to block and move on.

  1. I don’t think automated forgiveness is the way to go.

Because of all the wrongly-blocked, I am also fairly fast at unblocking if someone who is blocked appears in a conversation with people I trust, and a browse of their tweets doesn’t bring up any red flags. The idea there is: if you’re block-worthy, surely I’ll block you again. So, if you’ve changed, and you intersect my life, chances are I’ll just unblock you outright. But if you haven’t, I don’t actually want the app to unblock you. And there’s no way for the app to tell.

  1. Blocking isn’t just for me.

Blocking someone means they can’t see my tweets, and that includes replies to people, among other interactions. Blocking someone stops them interacting with me, but it also:

  • stops them interacting with others through me

  • stops me accidentally retweeting one of their viral tweets later on

  • helps protect people I interact with who haven’t blocked them

  • protects people I interact with who have, or are private.

    Have you ever read a twitter conversation where one side is public and the other is a private account? You can still figure out a lot from one side, right? That’s what I’m talking about.

†: I occasionally use the megablock.xyz app as a one off for especially egregious cases.


Maybe I should just unblock everyone, do a great big reset, and then restart my block list from nil, confident that from now on I’ll only block the deserving.

I don’t think so. I believe that my block list truly makes my twitter experience better, and resetting it would make it materially worse. Maybe not immediately, but certainly in the longer term.

Overall, the cold final part of it is that I believe that the cost is worth it. That whatever small percentage of people I have wrongly blocked is not significant enough to detract from the amount of good and comfort that having the rest rightfully blocked grants me.