Email or username:

Password:

Forgot your password?
Alex Gleason
Fellas, I think threads.net might be blocking some servers already.

It does not work on any Pleroma servers yet. (EDIT: this issue has been fixed https://gitlab.com/soapbox-pub/rebased/-/merge_requests/296/diffs ) But I believe that is an unintentional compatibility issue. However some servers seem to be outright blocked.

Let me explain. Threads requires signed fetches. What that means is that every GET request to a threads.net resource needs to be cryptographically signed. Threads will then look up the signer and verify its signature.

The flow looks something like this:

gleasonator.com -> GET threads.net/zuck (signed by /actor)
threads.net -> GET gleasonator.com/actor

The request to Threads contains a signature, with information about how to verify it. Threads will then verify it by fetching info from the origin server before returning the data.

You can see Threads fetching your own server by looking at the "facebookexternalua" user agent. Try this command on your server:

grep facebookexternalua /var/log/nginx/access.log

If you see logs there, that means Threads is attempting to verify your signatures and allow you to access their data.

On Gleasonator, I am seeing logs there. It is trying to let me establish a connection, even though it fails due to a bug in Pleroma or Threads. This means Gleasonator is not blocked.

However, on Spinster, and the Mostr Bridge, I have no requests from Threads at all, despite sending signed fetches. graf reports that Poast also isn't receiving any requests.

I do not believe they are operating on a whitelist. If so, it wouldn't make sense for Gleasonator and many other widely-blocked servers like gameliberty.club to be able to fetch from Threads.

So then I thought it may just be a caching issue, or a fluke on their end. But when I make a request from Gleasonator, I get the pingback from Threads within seconds. On Spinster and Mostr, there is no attempt being made at all.

So I am starting to think they may be blocking at the server-level already. And they are blocking Poast, Spinster, and the Mostr Bridge.
13 comments
silverpill

@alex I also see attempts to fetch instance actor in my log, but the last one was ~5 hours ago. Now when I make a signed request, threads.net doesn't react at all, even if I send a signed request as a different actor.

Alex Gleason
@silverpill I am still getting recent requests from Threads, every time I fetch. This proves they didn't turn the service off. They're choosing to deny some requests, possibly by actor origin.

108.162.237.23 - - [14/Dec/2023:20:04:42 +0000] "GET /internal/fetch HTTP/2.0" 200 823 "-" "facebookexternalua"
172.69.71.14 - - [14/Dec/2023:20:04:57 +0000] "GET /internal/fetch HTTP/2.0" 200 823 "-" "facebookexternalua"
172.69.71.147 - - [14/Dec/2023:20:04:59 +0000] "GET /internal/fetch HTTP/2.0" 200 823 "-" "facebookexternalua"
@silverpill I am still getting recent requests from Threads, every time I fetch. This proves they didn't turn the service off. They're choosing to deny some requests, possibly by actor origin.

108.162.237.23 - - [14/Dec/2023:20:04:42 +0000] "GET /internal/fetch HTTP/2.0" 200 823 "-" "facebookexternalua"
silverpill

@alex I tried to fetch https://www.threads.net/ap/users/mosseri from my other instance public.mitra.social and received a pingback from facebookexternalua. Is it possible that they block mitra.social but not public.mitra.social? Seems unlikely. I think their federation client may simply give up after several unsuccessful federation attempts.

Alex Gleason
@silverpill I don't know why they would target mitra.social. Does mitra.social have any requests from their user-agent historically? I have 0 from servers that don't work, which means no attempts were ever made.
silverpill

@alex Yes, mitra.social had incoming requests from facebookexternalua, but at some point they stopped and I can't trigger them anymore

Alex Gleason
@silverpill That's weird. That's different from my problem. That means you got blocked after they saw your traffic. Versus blocked up-front.
silverpill

@alex Yeah, and now I'm getting 429's from their server. The other instance (public.mitra.social) federates normally.

Alex Gleason
@silverpill Use ngrok to host it on a different domain temporarily, and I bet you it will work.
silverpill

@alex Sure. If they won't unblock me that is what I'm going to do

Michael Vogel
@alex What I just found out: Friendica does the requests with their system actor. That actor only has got an inbox, but no outbox. After I added the outbox to the profile, I was able to fetch a user.
Alex Gleason
@heluecht I also figured that out by now and patched it already. Interesting that Friendica has the same bug.
Michael Vogel

@alex Over night some posts from Threads (from Adam Mosseri) appeared on my system, so this seems to work fine.

One is a video where Adam Mosseri explains the launch in Europe and the steps towards the Fediverse. It appears as if he has got a deep knowledge of this whole topic. For example he made clear that the whole system is the Fediverse, the Protocol is ActivityPub and Mastodon is one of many applications in the Fediverse. Here he is already better than a lot of the Mastodon users of the Fediverse, who always call it "Mastodon".

I'm still not 100% where this will lead to and which motivation they drive. I don't think that their primary target is to dry out the Fediverse. They have got 100 million active users per month, the fediverse around 2. You don't invest such a lot time just for 2% gain.

Same is valid for this "they want our profile data" argument. They can gain some information about which user interacts with other users. But this doesn't help their ad business, since they cannot connect Fediverse accounts with IP addresses or cookies or any other tracking techniques.

By now I think that they want to avoid trouble via the EU because of their Digital Markets Act.

@alex Over night some posts from Threads (from Adam Mosseri) appeared on my system, so this seems to work fine.

One is a video where Adam Mosseri explains the launch in Europe and the steps towards the Fediverse. It appears as if he has got a deep knowledge of this whole topic. For example he made clear that the whole system is the Fediverse, the Protocol is ActivityPub and Mastodon is one of many applications in the Fediverse. Here he is already better than a lot of the Mastodon users of the Fediverse,...

Alex Gleason
@heluecht Great analysis. I couldn't see the video because the attachment got messed up in transit. I'll give it a watch.
Go Up