Follow request from External Instance -> Biohacking.Forum stuck on "Processing"

This is the respective actor: 💬 General - Biohacking Forums (@general@biohacking.forum)
This is the respective Instance(pub): https://biohacking.forum

Hey @joshhabka, sorry for the slow reply. Could you share which “external instance” (actor?) is trying to follow your @general@biohacking.forum actor?

1 Like

This is the external actor - Josh Universe :goldverify: (@admin) | Science Social

Testing this locally, what happens when trying to follow admin@science.social is this:

  1. Discourse finds the actor.
  2. Discourse sends a Follow request.
  3. No ActivityPub response is received (i.e. Accept or Reject).
Follow request (log entry)

W, [2025-02-28T12:30:14.121827 #13667] WARN – : [Discourse Activity Pub] General - Discourse successfully delivered to Science Social
— !ruby/hash:ActiveSupport::HashWithIndifferentAccess
id: https://angus.ngrok.io/ap/activity/3daf13eb14c73f428d8138879d99f21a
type: Follow
to: Josh Universe :goldverify: (@admin) | Science Social
published: ‘2025-02-28T11:28:43Z’
updated: ‘2025-02-28T11:28:43Z’
actor: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
id: General - Discourse
type: Group
updated: ‘2025-02-10T13:50:38Z’
url: General - Discourse
name: General
inbox: https://angus.ngrok.io/ap/actor/e297ea197fa0a0ccb54573c2ee7ccf0e/inbox
outbox: https://angus.ngrok.io/ap/actor/e297ea197fa0a0ccb54573c2ee7ccf0e/outbox
followers: https://angus.ngrok.io/ap/actor/e297ea197fa0a0ccb54573c2ee7ccf0e/followers
preferredUsername: general
publicKey: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
id: General - Discourse
owner: General - Discourse
publicKeyPem: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1PTdYt0XueXZoxNZq7pL
aM25LuJakYpHfWXuxja6f1mkX/piCynS74R/rFrdvVvqcCZZ4VaG0X+8jkXgza1E
ZjUFg23OXx6facIk0w/cZbv+PdRIYmFDg/HaUJ6p8IqJb2kFZk+2qR5xe6UvTmDj
PeKEAkpuUuP63I1bIjwW2YSEIfhIN/P31XNzKcDd3au1cYtl0kCS+uBPdqJakSBe
c8yFDbkBGa0oUIVJh35ehMI2PawjaL5ujCIr5PIc1VTdPdaRmec7Ck2MO8Pnf731
9u9LIa5WfUe50VmVMPTDnYtpqDgNW2yOIvUS0FxUFAfybZRuuEw0ML8d8FFxEmm9
PQIDAQAB
-----END PUBLIC KEY-----
icon: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
type: Image
mediaType: image/png
url: http://localhost:3000/images/discourse-logo-sketch-small.png
@context”: ActivityStreams 2.0 Terms
@context”: ActivityStreams 2.0 Terms
object: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
id: Josh Universe :goldverify: (@admin) | Science Social
type: Person
updated: ‘2025-02-28T10:50:07Z’
inbox: Science Social
outbox: https://science.social/users/a2w9ie51kf4l0021/outbox
preferredUsername: admin
publicKey: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
id: Josh Universe :goldverify: (@admin) | Science Social
owner: Josh Universe :goldverify: (@admin) | Science Social
publicKeyPem: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqZFylB6cnhcoKPXwSFna
H3rpoMutpDJsLKyhP825oMVU7Fo/K2cLv+LwD9NlFqb1+ENdB4VRvzco50e15VXr
p6Uf/r/AZubxcQX4t3V/ZFodD4EBxzXH0Soo2Qc7obeaKZ7nkeoFa0cDld+LKvXh
66EJ4PQwHCBRhBK76Ij0hEhuC6tF8u31lq0S+h1x0M+2cMuxkHtPlBDBdAWeNLRT
jYFfOWdtaca45G1LoM96hN9SPCwvboSO0NdvvEXUtqyTS95XisueLF1v6ONcgek9
Mr5oQKm84fzP3qau+T/tkHb0GLlomcDdEoDuehN5rV2Q0IpZddXTV67ZRCOEcaTd
uQIDAQAB
-----END PUBLIC KEY-----
@context”: ActivityStreams 2.0 Terms

Response to follow request

<Excon::Response:0x000000013f8ff3c8 @data={:body=>“”, :cookies=>, :host=>“science.social”, :scheme=>“https”, :method=>:post, :headers=>{“Date”=>“Fri, 28 Feb 2025 11:28:44 GMT”, “Content-Length”=>“0”, “Connection”=>“keep-alive”, “access-control-allow-headers”=>“Accept”, “access-control-allow-methods”=>“GET, OPTIONS”, “access-control-allow-origin”=>““, “access-control-expose-headers”=>“Vary”, “strict-transport-security”=>“max-age=15552000; includeSubDomains; preload”, “cf-cache-status”=>“DYNAMIC”, “Report-To”=>”{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=fSgkKogq6xRlkPM%2BbV6LsJUdPx9Shz%2Bp36qkB5nm9%2BAh3WnUBJPu%2F7xvx7sMz9gw%2F%2FvsMrN%2FoT4NSlUKYsyxl2AJz8qMfmzYWFvgPgGjsu9%2BAaeKA4sqVuUn9r66V922Cg%3D%3D"}],"group":"cf-nel","max_age":604800}“, “NEL”=>”{"success_fraction":0,"report_to":"cf-nel","max_age":604800}“, “X-Content-Type-Options”=>“nosniff”, “Server”=>“cloudflare”, “CF-RAY”=>“919012a2bc42e295-BEG”, “alt-svc”=>“h3=":443"; ma=86400”, “server-timing”=>“cfL4;desc="?proto=TCP&rtt=6415&min_rtt=5826&rtt_var=2606&sent=5&recv=8&lost=0&retrans=0&sent_bytes=2801&recv_bytes=3976&delivery_rate=494335&cwnd=251&unsent_bytes=0&cid=ab5e7d8e95093fc3&ts=490&x=0"”}, :path=>”/users/a2w9ie51kf4l0021/inbox", :query=>nil, :port=>443, :omit_default_port=>true, :status=>202, :status_line=>“HTTP/1.1 202 Accepted\r\n”, :reason_phrase=>“Accepted”, :remote_ip=>“104.21.48.35”, :local_port=>56383, :local_address=>“192.168.1.2”}, @body=“”, @headers={“Date”=>“Fri, 28 Feb 2025 11:28:44 GMT”, “Content-Length”=>“0”, “Connection”=>“keep-alive”, “access-control-allow-headers”=>“Accept”, “access-control-allow-methods”=>“GET, OPTIONS”, “access-control-allow-origin”=>"”, “access-control-expose-headers”=>“Vary”, “strict-transport-security”=>“max-age=15552000; includeSubDomains; preload”, “cf-cache-status”=>“DYNAMIC”, “Report-To”=>“{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=fSgkKogq6xRlkPM%2BbV6LsJUdPx9Shz%2Bp36qkB5nm9%2BAh3WnUBJPu%2F7xvx7sMz9gw%2F%2FvsMrN%2FoT4NSlUKYsyxl2AJz8qMfmzYWFvgPgGjsu9%2BAaeKA4sqVuUn9r66V922Cg%3D%3D"}],"group":"cf-nel","max_age":604800}”, “NEL”=>“{"success_fraction":0,"report_to":"cf-nel","max_age":604800}”, “X-Content-Type-Options”=>“nosniff”, “Server”=>“cloudflare”, “CF-RAY”=>“919012a2bc42e295-BEG”, “alt-svc”=>“h3=":443"; ma=86400”, “server-timing”=>“cfL4;desc="?proto=TCP&rtt=6415&min_rtt=5826&rtt_var=2606&sent=5&recv=8&lost=0&retrans=0&sent_bytes=2801&recv_bytes=3976&delivery_rate=494335&cwnd=251&unsent_bytes=0&cid=ab5e7d8e95093fc3&ts=490&x=0"”}, @status=202, @remote_ip=“104.21.48.35”, @local_port=56383, @local_address=“192.168.1.2”>

Just looking at the response we’re getting back to the request itself it may be that Cloudflare is interfering in some fashion. Could you check your Cloudflare setup to see if this might be the cause? Failing that, perhaps Misskey has some logs that might shed some light on why it’s not responding to the Follow request?