microblog-pub / microblog.pub

Fork of tsileo/microblog.pub with improvements from JD557/microblog.pub with the goal to resurrect the project
https://microblog-pub.github.io/microblog.pub/
GNU Affero General Public License v3.0
7 stars 1 forks source link

"Follow Request" seems to not fully work #17

Open nigini opened 4 weeks ago

nigini commented 4 weeks ago

I think I bumped into this a couple of times: it seems that the MBP (a.k.a. microblog.pub) does not follow others instantly, but only sends a request... This doesn't seem to be a standard think in the Fediverse (or if it is, some software does not implement it.) For instance, I tried to follow my BookWyrm account and never received the Follow Request there.

Here is what shows up when I look up the account again:

Screenshot from 2024-10-05 21-36-45

Any ideas?

3b0b commented 3 weeks ago

I haven't had any trouble with our implementation that I can recall, but I also can't recall whether I've followed anyone new lately. I am pretty sure it is a requirement of the protocol that a follow request has to be sent and allowed in order to follow someone. I think most servers default their users to approving followers automatically, ours included (fortunately that's easy to turn off), so if the exchange goes smoothly and quickly enough it's entirely possible some clients won't ever show the state of the request having been sent but not accepted yet...

nigini commented 1 week ago

Good reminder... It can totally be something related to how the other server is handling follow requests... Will investigate!

nigini commented 1 week ago

Documenting some observations: our outgoing_worker.log shows a 401 when trying to post the follow activity to the other server actor's inbox:

httpx.HTTPStatusError: Client error '401 Unauthorized' for url 'https://velhaestante.com.br/user/nigini/inbox'
For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401
2024-10-27 05:14:31.480 | INFO     | app.outgoing_activities:fetch_next_outgoing_activity:173 - 1 outgoing activities ready to process
2024-10-27 05:14:31.483 | INFO     | app.outgoing_activities:process_next_outgoing_activity:200 - recipient=https://velhaestante.com.br/user/nigini/inbox
2024-10-27 05:14:31.484 | INFO     | app.outgoing_activities:process_next_outgoing_activity:236 - payload={'@context': 'https://www.w3.org/ns/activitystreams', 'id': 'https://blog.nigini.me/o/78853f6bb63548369732c5541b591ec4', 'type': 'Follow', 'actor': 'https://blog.nigini.me', 'object': 'https://velhaestante.com.br/user/nigini'}
2024-10-27 05:14:31.484 | INFO     | app.activitypub:post:394 - Posting https://velhaestante.com.br/user/nigini/inbox (payload={'@context': 'https://www.w3.org/ns/activitystreams', 'id': 'https://blog.nigini.me/o/78853f6bb63548369732c5541b591ec4', 'type': 'Follow', 'actor': 'https://blog.nigini.me', 'object': 'https://velhaestante.com.br/user/nigini'})
2024-10-27 05:14:31.522 | INFO     | app.httpsig:auth_flow:318 - keyid=https://blog.nigini.me#main-key
2024-10-27 05:14:31.526 | DEBUG    | app.httpsig:auth_flow:346 - signed request sig_value='keyId="https://blog.nigini.me#main-key",algorithm="rsa-sha256",headers="(request-target) user-agent host date digest content-type",signature="SIGNATURE_HERE"'
2024-10-27 05:14:32.940 | ERROR    | app.outgoing_activities:process_next_outgoing_activity:240 - Failed

The other server is a Bookwyrm instance, which have had similar issues while Federating with GoToSocial instances. Considering there was a lot of debugging between those two providers, I am guessing we need to do some updating to our Post Auth Negotiation, but am still learning about this!