snarfed / bridgy-fed

🌉 A bridge between decentralized social network protocols
https://fed.brid.gy/
Creative Commons Zero v1.0 Universal
492 stars 28 forks source link

support Pleroma #12

Open snarfed opened 6 years ago

snarfed commented 6 years ago

https://gitgud.io/lambadalambda/pleroma . haven't found a website apart from that. doesn't seem to be used very widely. claims to be OStatus compatible.

Known interop problems so far:

TODO: file issues on https://git.pleroma.social/pleroma/pleroma/-/issues for these ^

leenaars commented 6 years ago

The project meanwhile seems to have matured to its own domain and git repo:

https://git.pleroma.social/pleroma/pleroma

normikoto commented 6 years ago

Should note that it's also ActivityPub-compatible as well now.

vikanezrimaya commented 5 years ago

Pleroma seems to gain popularity. It even caused some drama on the fediverse, causing in defederation with several mastodon instances. It is said to be light on resources and I'm moving to it (if you need some assistance with testing, I'd be happy to help!)

aqeeliz commented 5 years ago

Pleroma is compatible with Mastodon clients, so if Mastodon is working, Pleroma should (at least theoretically) work too.

swentel commented 3 years ago

While working on the Drupal plugin, I finally got successful requests with Pleroma. You can see a notice at https://kiwifarms.cc/notice/9zpG1WBnWG67cro7bk

@snarfed thinks to look out for:

That should do it.

snarfed commented 3 years ago

thank you @swentel! great sleuthing, really useful info.

and funny coincidence, i've been troubleshooting Pleroma compatibility in Bridgy itself recently too, eg https://github.com/snarfed/bridgy/issues/977 .

jk-na commented 3 years ago

I'm sure this doesn't add much of any substance that you didn't already know, however, I've just configured my site to use bridgy-fed and was successfully able to reply to a mastodon post (yours @snarfed ) but not a pleroma post on my site.

The following is the feedback from webmention.app:

source= https://fed.brid.gy/
target= 502 https://fed.brid.gy/webmention
400 Client Error: Bad Request for url: https://social.nipponalba.scot/users/jk/inbox ; "error" 

Apologies in advance if once again this is down to my particular instance not playing ball.

jk-na commented 3 years ago

The following are the (debug enabled) logs of an attempt to reply to pleroma:

Mar 10 13:54:17 MatrixRock pleroma[7585]: 13:54:17.446 [info] POST /users/jk/inbox
Mar 10 13:54:17 MatrixRock pleroma[7585]: 13:54:17.448 request_id=Fmr_mvne5kH7O3MADlJi [debug] POST /users/jk/inbox
Mar 10 13:54:17 MatrixRock pleroma[7585]: 13:54:17.462 request_id=Fmr_mvne5kH7O3MADlJi [debug] Processing with Pleroma.Web.ActivityPub.ActivityPubController.inbox/2
Mar 10 13:54:17 MatrixRock pleroma[7585]:   Parameters: %{"@context" => "https://www.w3.org/ns/activitystreams", "nickname" => "jk", "object" => %{"@context" => "https://www.w3.org/ns/activitystreams", "attachment" => [%{"name" => "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿's avatar Wed, 10 Mar 2021 10:50:00 GMT\nRight then, if I've fixed my atom feed and added the link to bridgy fed for posts.. nginx rule added.. so long as my beehive -&gt; webmention.app process works then maybe my site is now activitypubbed.. maybe.. (https://jk.nipponalba.scot/note/6048a457/)", "type" => "Note"}], "attributedTo" => [%{"icon" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "id" => "https://fed.brid.gy/jk.nipponalba.scot", "image" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "name" => "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site", "preferredUsername" => "jk.nipponalba.scot", "type" => "Person", "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot"}], "cc" => ["https://www.w3.org/ns/activitystreams#Public", "https://social.nipponalba.scot/users/jk", "https://social.nipponalba.scot/users/jk/followers"], "content" => "<br/><p>If you can see this, it worked!</p>", "id" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6048bcde/", "inReplyTo" => "https://social.nipponalba.scot/objects/1bf56236-fe1f-4f3c-9978-7b3eabcf73b5", "name" => "If you can see this, it worked!", "published" => "10 Mar 2021 12:34 GMT", "tag" => [%{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}, %{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}], "type" => "Note", "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6048bcde/", "urls" => [%{"value" => "https://jk.nipponalba.scot/response/6048bcde/"}, %{"value" => "https://fed.brid.gy/"}]}, "type" => "Create"}
Mar 10 13:54:17 MatrixRock pleroma[7585]:   Pipelines: [:activitypub]
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.128 request_id=Fmr_mvne5kH7O3MADlJi [debug] Couldn't parse XML: "{\n  \"subject\": \"acct:jk.nipponalba.scot@jk.nipponalba.scot\",\n  \"aliases\": [\n    \"https://jk.nipponalba.scot/\",\n    \"https://social.nipponalba.scot/jk\",\n    \"https://px.nipponalba.scot/jk\"\n  ],\n  \"magic_keys\": [\n    {\n      \"value\": \"data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB\"\n    }\n  ],\n  \"links\": [\n    {\n      \"rel\": \"http://webfinger.net/rel/profile-page\",\n      \"type\": \"text/html\",\n      \"href\": \"https://jk.nipponalba.scot/\"\n    },\n    {\n      \"rel\": \"http://webfinger.net/rel/profile-page\",\n      \"type\": \"text/html\",\n      \"href\": \"https://social.nipponalba.scot/jk\"\n    },\n    {\n      \"rel\": \"http://webfinger.net/rel/profile-page\",\n      \"type\": \"text/html\",\n      \"href\": \"https://px.nipponalba.scot/jk\"\n    },\n    {\n      \"rel\": \"http://webfinger.net/rel/avatar\",\n      \"href\": {\n        \"value\": \"https://jk.nipponalba.scot/images/profile.jpg\",\n        \"alt\": \"profile picture\"\n      }\n    },\n    {\n      \"rel\": \"canonical_uri\",\n      \"type\": \"text/html\",\n      \"href\": \"https://jk.nipponalba.scot/\"\n    },\n    {\n      \"rel\": \"self\",\n      \"type\": \"application/activity+json\",\n      \"href\": \"https://fed.brid.gy/jk.nipponalba.scot\"\n    },\n    {\n      \"rel\": \"inbox\",\n      \"type\": \"application/activity+json\",\n      \"href\": \"https://fed.brid.gy/jk.nipponalba.scot/inbox\"\n    },\n    {\n      \"rel\": \"http://schemas.google.com/g/2010#updates-from\",\n      \"type\": \"application/atom+xml\",\n      \"href\": \"http://jk.nipponalba.scot/atom.xml\"\n    },\n    {\n      \"rel\": \"hub\",\n      \"href\": \"https://bridgy-fed.superfeedr.com/\"\n    },\n    {\n      \"rel\": \"magic-public-key\",\n      \"href\": \"data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB\"\n    },\n    {\n      \"rel\": \"salmon\",\n      \"href\": \"https://fed.brid.gy/jk.nipponalba.scot/salmon\"\n    }\n  ]\n}"
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.130 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: "text/html"
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.131 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: "text/html"
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.131 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: "text/html"
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.132 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: nil
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.133 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: "text/html"
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.134 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: "application/activity+json"
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.136 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: "application/atom+xml"
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.137 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: nil
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.138 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: nil
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.139 request_id=Fmr_mvne5kH7O3MADlJi [debug] Unhandled type: nil
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.140 request_id=Fmr_mvne5kH7O3MADlJi [debug] Could not validate against known public keys: {:error, {:error, "acct:jk.nipponalba.scot@jk.nipponalba.scot"}}
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.141 request_id=Fmr_mvne5kH7O3MADlJi [debug] Signature missing or not from author, relayed Create message, fetching object from source
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.150 request_id=Fmr_mvne5kH7O3MADlJi [debug] QUERY OK source="objects" db=6.3ms queue=0.4ms idle=261.1ms
Mar 10 13:54:21 MatrixRock pleroma[7585]: SELECT o0."id", o0."data", o0."inserted_at", o0."updated_at" FROM "objects" AS o0 WHERE ((o0."data")->>'id' = $1) ["https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6048bcde/"]
Mar 10 13:54:21 MatrixRock pleroma[7585]: 13:54:21.150 request_id=Fmr_mvne5kH7O3MADlJi [debug] Fetching object https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6048bcde/ via AP
Mar 10 13:54:22 MatrixRock pleroma[7585]: 13:54:22.200 request_id=Fmr_mvne5kH7O3MADlJi [debug] Sent 200 in 4751ms
Mar 10 13:54:22 MatrixRock pleroma[7585]: 13:54:22.200 request_id=Fmr_mvne5kH7O3MADlJi [info] Sent 200 in 4754ms
snarfed commented 3 years ago

Thanks for the details!

Here's also the complete AS2 activity that Bridgy Fed sent to https://social.nipponalba.scot/users/jk/inbox , and got a 200 back for, from Bridgy Fed's log.

One thing I notice is that the object has an id, but the activity doesn't, and @swentel said above:

Posting notes/reply: the id of the activity and object must be different. The object also needs the attributedTo property.

I can look into adding an activity id.

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Create",
  "object": {
    "published": "10 Mar 2021 12:34 GMT",
    "content": "<br/><p>If you can see this, it worked!</p>",
    "url": "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6048bcde/",
    "urls": [
      {"value": "https://jk.nipponalba.scot/response/6048bcde/"},
      {"value": "https://fed.brid.gy/"}
    ],
    "inReplyTo": "https://social.nipponalba.scot/objects/1bf56236-fe1f-4f3c-9978-7b3eabcf73b5",
    "@context": "https://www.w3.org/ns/activitystreams",
    "type": "Note",
    "name": "If you can see this, it worked!",
    "attachment": [
      {
        "type": "Note",
        "name": "J K \ud83c\uddef\ud83c\uddf5\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f's avatar Wed, 10 Mar 2021 10:50:00 GMT\nRight then, if I've fixed my atom feed and added the link to bridgy fed for posts.. nginx rule added.. so long as my beehive -&gt; webmention.app process works then maybe my site is now activitypubbed.. maybe.. (https://jk.nipponalba.scot/note/6048a457/)"
      }
    ],
    "attributedTo": [
      {
        "url": "https://fed.brid.gy/r/https://jk.nipponalba.scot",
        "type": "Person",
        "name": "J K \ud83c\uddef\ud83c\uddf5\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f | personal site",
        "image": [
          {
            "url": "https://jk.nipponalba.scot/images/profile.jpg",
            "type": "Image"
          }
        ],
        "icon": [
          {
            "url": "https://jk.nipponalba.scot/images/profile.jpg",
            "type": "Image"
          }
        ],
        "preferredUsername": "jk.nipponalba.scot",
        "id": "https://fed.brid.gy/jk.nipponalba.scot"
      }
    ],
    "tag": [
      {
        "type": "Mention",
        "href": "https://social.nipponalba.scot/users/jk"
      },
      {
        "type": "Mention",
        "href": "https://social.nipponalba.scot/users/jk"
      }
    ],
    "id": "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6048bcde/",
    "cc": [
      "https://www.w3.org/ns/activitystreams#Public",
      "https://social.nipponalba.scot/users/jk",
      "https://social.nipponalba.scot/users/jk/followers"
    ]
  }
}
snarfed commented 3 years ago

I've added an id to outbound AS2 activities. Feel free to try again!

jk-na commented 3 years ago

I've tried again and am seeing a similar pattern to above - there are 200 responses but there are also errors relating to signatures and failures to parse xml.

Mar 11 09:42:22 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] POST /users/jk/inbox
Mar 11 09:42:22 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Processing with Pleroma.Web.ActivityPub.ActivityPubController.inbox/2#012  Parameters: %{"@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d413/#bridgy-fed-create", "nickname" => "jk", "object" => %{"@context" => "https://www.w3.org/ns/activitystreams", "attributedTo" => [%{"icon" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "id" => "https://fed.brid.gy/jk.nipponalba.scot", "image" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "name" => "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site", "preferredUsername" => "jk.nipponalba.scot", "type" => "Person", "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot"}], "cc" => ["https://www.w3.org/ns/activitystreams#Public", "https://social.nipponalba.scot/users/jk", "https://social.nipponalba.scot/users/jk/followers"], "content" => "<br/><p>Testing</p>", "id" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d413/", "inReplyTo" => "https://social.nipponalba.scot/objects/c341db0a-ad7e-406a-9b9f-07b575ce9f61", "name" => "Testing", "published" => "11 Mar 2021 08:25 GMT", "tag" => [%{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}, %{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}], "type" => "Note", "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d413/", "urls" => [%{"value" => "https://jk.nipponalba.scot/response/6049d413/"}, %{"value" => "https://fed.brid.gy/"}]}, "type" => "Create"}#012  Pipelines: [:activitypub]
Mar 11 09:42:25 MatrixRock pleroma: [debug] QUERY OK source="users" db=1077.5ms decode=0.7ms queue=0.1ms idle=110.3ms#012SELECT distinct split_part(u0."nickname", '@', 2) FROM "users" AS u0 WHERE (u0."local" != $1) [true]
Mar 11 09:42:25 MatrixRock pleroma: [debug] QUERY OK source="users" db=4.6ms queue=0.2ms idle=194.6ms#012SELECT sum(u0."note_count") FROM "users" AS u0 WHERE (NOT (u0."nickname" IS NULL)) AND (NOT (u0."nickname" LIKE 'internal.%')) AND (u0."local" = $1) [true]
Mar 11 09:42:25 MatrixRock pleroma: [debug] QUERY OK source="users" db=4.9ms queue=1.1ms idle=197.8ms#012SELECT count(u0."id") FROM "users" AS u0 WHERE (u0."is_active" = TRUE) AND (u0."local" = TRUE) AND (NOT (u0."nickname" IS NULL)) AND (NOT (u0."invisible")) []
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Couldn't parse XML: "{\n  \"subject\": \"acct:jk.nipponalba.scot@jk.nipponalba.scot\",\n  \"aliases\": [\n    \"https://jk.nipponalba.scot/\",\n    \"https://social.nipponalba.scot/jk\",\n    \"https://px.nipponalba.scot/jk\"\n  ],\n  \"magic_keys\": [\n    {\n      \"value\": \"data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB\"\n    }\n  ],\n  \"links\": [\n    {\n      \"rel\": \"http://webfinger.net/rel/profile-page\",\n      \"type\": \"text/html\",\n      \"href\": \"https://jk.nipponalba.scot/\"\n    },\n    {\n      \"rel\": \"http://webfinger.net/rel/profile-page\",\n      \"type\": \"text/html\",\n      \"href\": \"https://social.nipponalba.scot/jk\"\n    },\n    {\n      \"rel\": \"http://webfinger.net/rel/profile-page\",\n      \"type\": \"text/html\",\n      \"href\": \"https://px.nipponalba.scot/jk\"\n    },\n    {\n      \"rel\": \"http://webfinger.net/rel/avatar\",\n      \"href\": {\n        \"value\": \"https://jk.nipponalba.scot/images/profile.jpg\",\n        \"alt\": \"profile picture\"\n      }\n    },\n    {\n      \"rel\": \"canonical_uri\",\n      \"type\": \"text/html\",\n      \"href\": \"https://jk.nipponalba.scot/\"\n    },\n    {\n      \"rel\": \"self\",\n      \"type\": \"application/activity+json\",\n      \"href\": \"https://fed.brid.gy/jk.nipponalba.scot\"\n    },\n    {\n      \"rel\": \"inbox\",\n      \"type\": \"application/activity+json\",\n      \"href\": \"https://fed.brid.gy/jk.nipponalba.scot/inbox\"\n    },\n    {\n      \"rel\": \"http://schemas.google.com/g/2010#updates-from\",\n      \"type\": \"application/atom+xml\",\n      \"href\": \"http://jk.nipponalba.scot/atom.xml\"\n    },\n    {\n      \"rel\": \"hub\",\n      \"href\": \"https://bridgy-fed.superfeedr.com/\"\n    },\n    {\n      \"rel\": \"magic-public-key\",\n      \"href\": \"data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB\"\n    },\n    {\n      \"rel\": \"salmon\",\n      \"href\": \"https://fed.brid.gy/jk.nipponalba.scot/salmon\"\n    }\n  ]\n}"
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: "text/html"
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: "text/html"
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: "text/html"
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: nil
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: "text/html"
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: "application/activity+json"
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: "application/atom+xml"
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: nil
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: nil
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Unhandled type: nil
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Could not validate against known public keys: {:error, {:error, "acct:jk.nipponalba.scot@jk.nipponalba.scot"}}
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Signature missing or not from author, relayed Create message, fetching object from source
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] QUERY OK source="objects" db=5.6ms queue=0.4ms idle=258.2ms#012SELECT o0."id", o0."data", o0."inserted_at", o0."updated_at" FROM "objects" AS o0 WHERE ((o0."data")->>'id' = $1) ["https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d413/"]
Mar 11 09:42:25 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Fetching object https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d413/ via AP
Mar 11 09:42:26 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] QUERY OK source="objects" db=6.4ms queue=0.2ms idle=348.7ms#012SELECT o0."id", o0."data", o0."inserted_at", o0."updated_at" FROM "objects" AS o0 WHERE ((o0."data")->>'id' = $1) ["https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d413/#bridgy-fed-create"]
Mar 11 09:42:26 MatrixRock pleroma: request_id=FmtAcEQM0DZ8z1UAFDvB [debug] Sent 200 in 3997ms

Not sure if perhaps: Could not validate against known public keys: {:error, {:error, "acct:jk.nipponalba.scot@jk.nipponalba.scot"}} or Couldn't parse XML are at all relevant?

The first of those seems similar in nature to the pixelfed error, could it be that the AP spec has it that the key needs to be formatted in a certain way (which pixelfed and pleroma perhaps require) but mastodon have a workaround in place that converts one format to the other?

jk-na commented 3 years ago

The mastodon activitypub page has the key id in the format of "https://mastodon.social/users/Gargron#main-key" rather than the webfinger format above. I may however be reading way too much into this, and it could well be a red herring.

snarfed commented 3 years ago

@jk-na those are all good clues!

I did notice one other quirk: it looks like your site's redirects to Bridgy Fed are duplicating the query parameters. eg https://jk.nipponalba.scot/.well-known/webfinger?resource=acct:jk.nipponalba.scot@jk.nipponalba.scot currently redirects to https://fed.brid.gy/.well-known/webfinger?resource=acct:jk.nipponalba.scot@jk.nipponalba.scot?resource=acct:jk.nipponalba.scot@jk.nipponalba.scot. Bridgy Fed still serves that request fine though, for just jk.nipponalba.scot@jk.nipponalba.scot, so I doubt it's the cause here.

jk-na commented 3 years ago

How bizarre, I just copied and pasted the nginx redirect from the set up instructions to my proxy server, I'll double-check it though.

snarfed commented 3 years ago

Also, Couldn't parse XML is odd. ActivityPub is all JSON afaik, the term XML literally doesn't appear anywhere on https://w3c.github.io/activitypub/ , so I'm not sure where Pleroma is expecting XML.

snarfed commented 3 years ago

Based on the logs, it looks like Pleroma is trying to parse the JSON WebFinger response as XML, which explains that error and why it can't find or validate your public key. I'll try to figure out why.

jk-na commented 3 years ago

I fixed the duplication by adding a ? to the end of the rewrite target..

rewrite ^/.well-known/(host-meta|webfinger).* https://fed.brid.gy$request_uri? redirect;

Interestingly, I don't now get the webmention.app error, instead receiving a 200 response. Received the error on the second attempt.. same errors at the pleroma end.

jk-na commented 3 years ago

The following is an excerpt from a successful POST to my inbox and might provide a clue or more confusion, it is from a mastodon account, I think:

Mar 11 21:48:56 MatrixRock pleroma: [info] POST /inbox
Mar 11 21:48:56 MatrixRock pleroma: request_id=FmtoFl8HNVPrWxgAEQ-j [debug] POST /inbox
Mar 11 21:48:56 MatrixRock pleroma: request_id=FmtoFl8HNVPrWxgAEQ-j [debug] Processing with Pleroma.Web.ActivityPub.ActivityPubController.inbox/2#012  Parameters: %{"@context" => ["https://www.w3.org/ns/activitystreams", %{"atomUri" => "ostatus:atomUri", "conversation" => "ostatus:conversation", "inReplyToAtomUri" => "ostatus:inReplyToAtomUri", "ostatus" => "http://ostatus.org#", "sensitive" => "as:sensitive", "toot" => "http://joinmastodon.org/ns#", "votersCount" => "toot:votersCount"}], "actor" => "https://rage.love/users/pfx", "cc" => [], "id" => "https://rage.love/users/pfx/statuses/105873364426273091/activity", "object" => %{"atomUri" => "https://rage.love/users/pfx/statuses/105873364426273091", "attachment" => [], "attributedTo" => "https://rage.love/users/pfx", "cc" => [], "content" => "<p>mmm nectarines with the texture of a old apple</p>", "contentMap" => %{"en" => "<p>mmm nectarines with the texture of a old apple</p>"}, "conversation" => "tag:rage.love,2021-03-11:objectId=5836645:objectType=Conversation", "id" => "https://rage.love/users/pfx/statuses/105873364426273091", "inReplyTo" => nil, "inReplyToAtomUri" => nil, "published" => "2021-03-11T21:48:55Z", "replies" => %{"first" => %{"items" => [], "next" => "https://rage.love/users/pfx/statuses/105873364426273091/replies?only_other_accounts=true&page=true", "partOf" => "https://rage.love/users/pfx/statuses/105873364426273091/replies", "type" => "CollectionPage"}, "id" => "https://rage.love/users/pfx/statuses/105873364426273091/replies", "type" => "Collection"}, "sensitive" => true, "summary" => "food", "tag" => [], "to" => ["https://rage.love/users/pfx/followers"], "type" => "Note", "url" => "https://rage.love/@pfx/105873364426273091"}, "published" => "2021-03-11T21:48:55Z", "to" => ["https://rage.love/users/pfx/followers"], "type" => "Create"}#012  Pipelines: [:activitypub]
Mar 11 21:48:56 MatrixRock pleroma: request_id=FmtoFl8HNVPrWxgAEQ-j [debug] Signature: IUDKbTJA9AnMERaKNHEN8ayG9G+jrsHsy8gFGoUjA3fqcgioDGkg+Cz4S+MZnvnB5LwZRDsMNb/AoquHESVbY6GPvEVusUk0JVz8WcIKFEwDdCqoVkhW7rnXMYLBs8bJ4+qpUBKV2lfljJCE4xVLVT8L9ZHXrYaksKk3qOkAq0P1/QQqaXrkvOniVw0T33RnY5MggQyXPidc1rtxPTqlCHogvsRpWMKplr3qo4xIIM36TT2zpsvzThJBTs5q0zrd9HfCreHx8NOYyDaO95L0y5Jdnnb1wfKi9yLY45mv8oBw7yCT4oy7UWpi/zvFq1/QLvKHXqrEcz4FaJNMCxWUQw==
Mar 11 21:48:56 MatrixRock pleroma: request_id=FmtoFl8HNVPrWxgAEQ-j [debug] Sigstring: (request-target): post /inbox#012host: social.nipponalba.scot#012date: Thu, 11 Mar 2021 21:48:56 GMT#012digest: SHA-256=ZaO6N06SYi9mA9R095sODVeuVud3eiPukDra3aYwCvc=#012content-type: application/activity+json
Mar 11 21:48:56 MatrixRock pleroma: request_id=FmtoFl8HNVPrWxgAEQ-j [debug] QUERY OK source="instances" db=4.7ms queue=0.2ms idle=440.6ms#012SELECT i0."id", i0."host", i0."unreachable_since", i0."favicon", i0."favicon_updated_at", i0."inserted_at", i0."updated_at" FROM "instances" AS i0 WHERE (i0."host" = $1) ["rage.love"]
Mar 11 21:48:56 MatrixRock pleroma: request_id=FmtoFl8HNVPrWxgAEQ-j [debug] Sent 200 in 30ms
snarfed commented 3 years ago

The WebFinger spec says:

The WebFinger resource returns a JSON Resource Descriptor (JRD) as the resource representation to convey information about an entity on the Internet.

I did notice that the official mime type for JRD is application/jrd+json, but Bridgy Fed currently returns application/json. I've fixed that, feel free to try again.

jk-na commented 3 years ago

After much backslash removal, this is the bit that pleroma seems to be having with:

Couldn't parse XML: "{
            "subject": "acct:jk.nipponalba.scot@jk.nipponalba.scot",
            "aliases": ["https://jk.nipponalba.scot/", "https://social.nipponalba.scot/jk", "https://px.nipponalba.scot/jk"],
            "magic_keys": [{"value": "data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB"}],
            "links": [{"rel": "http://webfinger.net/rel/profile-page",
                     "type": "text/html",
                 "href": "https://jk.nipponalba.scot/"},
                 {"rel": "http://webfinger.net/rel/profile-page",
                 "type": "text/html",
                 "href": "https://social.nipponalba.scot/jk"},
             {"rel": "http://webfinger.net/rel/profile-page",
                 "type": "text/html", 
                 "href": "https://px.nipponalba.scot/jk"},
             {"rel": "http://webfinger.net/rel/avatar",
                             "href": {"value": "https://jk.nipponalba.scot/images/profile.jpg",
                            "alt": "profile picture"}},
             {"rel": "canonical_uri",
                 "type": "text/html",
                 "href": "https://jk.nipponalba.scot/"},
             {"rel": "self",
                 "type": "application/activity+json",
                 "href": "https://fed.brid.gy/jk.nipponalba.scot"},
             {"rel": "inbox",
                 "type": "application/activity+json",
                 "href": "https://fed.brid.gy/jk.nipponalba.scot/inbox"},
             {"rel": "http://schemas.google.com/g/2010#updates-from",
                 "type": "application/atom+xml"
                 "href": "http://jk.nipponalba.scot/atom.xml"},
             {"rel": "hub",
                 "href": "https://bridgy-fed.superfeedr.com/"},
             {"rel": "magic-public-key",
                 "href": "data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB"},
             {"rel": "salmon",
                 "href": "https://fed.brid.gy/jk.nipponalba.scot/salmon"}]}"

I'll try again.

jk-na commented 3 years ago

The WebFinger spec says:

The WebFinger resource returns a JSON Resource Descriptor (JRD) as the resource representation to convey information about an entity on the Internet.

I did notice that the official mime type for JRD is application/jrd+json, but Bridgy Fed currently returns application/json. I've fixed that, feel free to try again.

Still the same error.

For ease of reading, I've tried to format the payload being processed by the inbox controller, I can see some differences but I don't know what is and isn't mandatory unfortunately.

First one is the mastodon transaction from above, second is one of my attempts via bridgy fed

Processing with Pleroma.Web.ActivityPub.ActivityPubController.inbox/2#012  
Parameters: 
    %{"@context" => 
        ["https://www.w3.org/ns/activitystreams", 
         %{
            "atomUri" => "ostatus:atomUri", 
            "conversation" => "ostatus:conversation", 
            "inReplyToAtomUri" => "ostatus:inReplyToAtomUri", 
            "ostatus" => "http://ostatus.org#", "
            sensitive" => "as:sensitive", 
            "toot" => "http://joinmastodon.org/ns#", 
            "votersCount" => "toot:votersCount"
         }
        ], 
        "actor" => "https://rage.love/users/pfx", 
        "cc" => [], 
        "id" => "https://rage.love/users/pfx/statuses/105873364426273091/activity", 
        "object" => %{
                "atomUri" => "https://rage.love/users/pfx/statuses/105873364426273091", 
                "attachment" => [], 
                "attributedTo" => "https://rage.love/users/pfx", 
                "cc" => [], 
                "content" => "<p>mmm nectarines with the texture of a old apple</p>", 
                "contentMap" => %{"en" => "<p>mmm nectarines with the texture of a old apple</p>"}, 
                "conversation" => "tag:rage.love,2021-03-11:objectId=5836645:objectType=Conversation", 
                "id" => "https://rage.love/users/pfx/statuses/105873364426273091", 
                "inReplyTo" => nil, 
                "inReplyToAtomUri" => nil, 
                "published" => "2021-03-11T21:48:55Z", 
                "replies" => %{
                        "first" => %{
                                "items" => [], 
                                "next" => "https://rage.love/users/pfx/statuses/105873364426273091/replies?only_other_accounts=true&page=true", 
                                "partOf" => "https://rage.love/users/pfx/statuses/105873364426273091/replies", 
                                "type" => "CollectionPage"}, 
                        "id" => "https://rage.love/users/pfx/statuses/105873364426273091/replies", 
                        "type" => "Collection"}, 
                "sensitive" => true, 
                "summary" => "food", 
                "tag" => [], 
                "to" => ["https://rage.love/users/pfx/followers"], 
                "type" => "Note", 
                "url" => "https://rage.love/@pfx/105873364426273091"}, 
        "published" => "2021-03-11T21:48:55Z", 
        "to" => ["https://rage.love/users/pfx/followers"], 
        "type" => "Create"}
#012  Pipelines: [:activitypub]

Processing with Pleroma.Web.ActivityPub.ActivityPubController.inbox/2#012  
Parameters: 
    %{"@context" => "https://www.w3.org/ns/activitystreams", 
    "id" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/#bridgy-fed-create", 
    "nickname" => "jk", 
    "object" => %{
        "@context" => "https://www.w3.org/ns/activitystreams", 
        "attributedTo" => [%{"icon" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], 
            "id" => "https://fed.brid.gy/jk.nipponalba.scot", 
            "image" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], 
            "name" => "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site", 
            "preferredUsername" => "jk.nipponalba.scot", 
            "type" => "Person", 
            "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot"}], 
        "cc" => ["https://www.w3.org/ns/activitystreams#Public", "https://social.nipponalba.scot/users/jk", "https://social.nipponalba.scot/users/jk/followers"], 
        "content" => "<br/><p>Test #2</p>", 
        "id" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/", 
        "inReplyTo" => "https://social.nipponalba.scot/objects/c341db0a-ad7e-406a-9b9f-07b575ce9f61", 
        "name" => "Test #2", 
        "published" => "11 Mar 2021 08:44 GMT", 
        "tag" => [%{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}, %{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}], 
        "type" => "Note", 
        "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/", 
        "urls" => [%{"value" => "https://jk.nipponalba.scot/response/6049d880/"}, %{"value" => "https://fed.brid.gy/"}]
         }, 
    "type" => "Update"}

#012  Pipelines: [:activitypub]
jk-na commented 3 years ago

I had a look at my webfinger response for my pleroma account and the following is the output (I found the xml)

<?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
   <Subject>acct:jk@social.nipponalba.scot</Subject>
   <Alias>https://social.nipponalba.scot/users/jk</Alias>
   <Link href="https://social.nipponalba.scot/users/jk" rel="http://webfinger.net/rel/profile-page" type="text/html" />
   <Link href="https://social.nipponalba.scot/users/jk" rel="self" type="application/activity+json" />
   <Link href="https://social.nipponalba.scot/users/jk" rel="self" type="application/ld+json; profile=&quot;https://www.w3.org/ns/activitystreams&quot;" />
   <Link rel="http://ostatus.org/schema/1.0/subscribe" template="https://social.nipponalba.scot/ostatus_subscribe?acct={uri}" />
</XRD>
snarfed commented 3 years ago

Thanks! Yup, that's XML-based XRD. I can try supporting that and see if it works then.

jk-na commented 3 years ago

This one is from my test mastodon account:

{
"subject":"acct:jk_na@mastodon.scot",
"aliases":["https://mastodon.scot/@jk_na","https://mastodon.scot/users/jk_na"],
"links":[
    {"rel":"http://webfinger.net/rel/profile-page",
     "type":"text/html","href":"https://mastodon.scot/@jk_na"},
    {"rel":"self",
     "type":"application/activity+json",
     "href":"https://mastodon.scot/users/jk_na"},
    {"rel":"http://ostatus.org/schema/1.0/subscribe",
     "template":"https://mastodon.scot/authorize_interaction?uri={uri}"}
    ]
}
snarfed commented 3 years ago

OK, Bridgy Fed's WebFinger now supports XRD. If you fetch it with `Accept: application/xrd' or 'application/xml', it now returns similar XRD to Pleroma's. Feel free to retry. Thanks again for all the testing!

jk-na commented 3 years ago

I think we're almost there.. the error message is smaller!

Couldn't parse XML: "{\"links\": [\n  {\n    \"rel\": \"lrdd\",\n    \"type\": \"application/json\",\n    \"template\": \"https://fed.brid.gy/.well-known/webfinger?resource={uri}\"\n   }\n  ]\n}"
Could not validate against known public keys: {:error, {:error, "acct:jk.nipponalba.scot@jk.nipponalba.scot"}}

When I look at the webfinger, I don't see any rel for lrdd so I'm not sure but also the subject element is empty.

<?xml version='1.0' encoding='UTF-8'?>
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>

    <Subject></Subject>
    <Alias>https://jk.nipponalba.scot/</Alias>

    <Link rel='http://webfinger.net/rel/profile-page' type='text/html' href='https://jk.nipponalba.scot/' />

    <Link rel='http://webfinger.net/rel/profile-page' type='text/html' href='https://social.nipponalba.scot/jk' />

    <Link rel='http://webfinger.net/rel/profile-page' type='text/html' href='https://px.nipponalba.scot/jk' />

    <Link rel='http://webfinger.net/rel/avatar' type='' href='https://jk.nipponalba.scot/images/profile.jpg' />

    <Link rel='canonical_uri' type='text/html' href='https://jk.nipponalba.scot/' />

    <Link rel='self' type='application/activity+json' href='https://fed.brid.gy/jk.nipponalba.scot' />

    <Link rel='inbox' type='application/activity+json' href='https://fed.brid.gy/jk.nipponalba.scot/inbox' />

    <Link rel='http://schemas.google.com/g/2010#updates-from' type='application/atom+xml' href='http://jk.nipponalba.scot/atom.xml' />

    <Link rel='hub' type='' href='https://bridgy-fed.superfeedr.com/' />

    <Link rel='magic-public-key' type='' href='data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB' />

    <Link rel='salmon' type='' href='https://fed.brid.gy/jk.nipponalba.scot/salmon' />

    <Property xmlns:mk="http://salmon-protocol.org/ns/magic-key"
              type="http://salmon-protocol.org/ns/magic-key">
      data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB
    </Property>

</XRD>
snarfed commented 3 years ago

Thanks! I should really set up my own local Pleroma instance to do this testing. 😆

That new JSON is .well-known/host-meta, it needs to be XRD too. I'll do that.

jk-na commented 3 years ago

I'm more than happy to troubleshoot and help with the services I host, which looking at the list of compatibility issues is currently just pleroma and pixelfed as I no longer have plume, peertube, friendica or diaspora instances.

snarfed commented 3 years ago

OK, /.well-known/host-meta now defaults to XRD, as the spec says it's supposed to. Ready to retry.

jk-na commented 3 years ago

Sorry to say that it has gone back to having issues parsing /.well-known/webfinger, the property element at the end seems to be missing from the error.. so possibly it is struggling with that?

Couldn't parse XML: "{\n \"subject\": \"acct:jk.nipponalba.scot@jk.nipponalba.scot\",\n \"aliases\": [\n \"https://jk.nipponalba.scot/\",\n \"https://social.nipponalba.scot/jk\",\n \"https://px.nipponalba.scot/jk\"\n ],\n \"magic_keys\": [\n {\n \"value\": \"data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB\"\n }\n ],\n \"links\": [\n {\n \"rel\": \"http://webfinger.net/rel/profile-page\",\n \"type\": \"text/html\",\n \"href\": \"https://jk.nipponalba.scot/\"\n },\n {\n \"rel\": \"http://webfinger.net/rel/profile-page\",\n \"type\": \"text/html\",\n \"href\": \"https://social.nipponalba.scot/jk\"\n },\n {\n \"rel\": \"http://webfinger.net/rel/profile-page\",\n \"type\": \"text/html\",\n \"href\": \"https://px.nipponalba.scot/jk\"\n },\n {\n \"rel\": \"http://webfinger.net/rel/avatar\",\n \"href\": \"https://jk.nipponalba.scot/images/profile.jpg\"\n },\n {\n \"rel\": \"canonical_uri\",\n \"type\": \"text/html\",\n \"href\": \"https://jk.nipponalba.scot/\"\n },\n {\n \"rel\": \"self\",\n \"type\": \"application/activity+json\",\n \"href\": \"https://fed.brid.gy/jk.nipponalba.scot\"\n },\n {\n \"rel\": \"inbox\",\n \"type\": \"application/activity+json\",\n \"href\": \"https://fed.brid.gy/jk.nipponalba.scot/inbox\"\n },\n {\n \"rel\": \"http://schemas.google.com/g/2010#updates-from\",\n \"type\": \"application/atom+xml\",\n \"href\": \"https://jk.nipponalba.scot/atom.xml\"\n },\n {\n \"rel\": \"hub\",\n \"href\": \"https://bridgy-fed.superfeedr.com/\"\n },\n {\n \"rel\": \"magic-public-key\",\n \"href\": \"data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB\"\n },\n {\n \"rel\": \"salmon\",\n \"href\": \"https://fed.brid.gy/jk.nipponalba.scot/salmon\"\n }\n ]\n}"

    <Property xmlns:mk="http://salmon-protocol.org/ns/magic-key"
              type="http://salmon-protocol.org/ns/magic-key">
      data:application/magic-public-key,RSA.3Wq8cM8ZzWydoZ3ljmB5GCaMJKcooELcZVHdFY4EkB8MVPZFqn26xwVQA8k7XKov-HQM0Hd1JwiNUzzZ5-Cz2WPT1qIlnd2ZdfxHyxcTuy1PRku33Ei0JMo-STYUpTdyPED7nWW8m64EQ1WWKKA3tQ_uduSixqgtmo6yFTog0U0=.AQAB
    </Property>
snarfed commented 3 years ago

Ugh, thanks. We're back to serving JSON (JRD), and they're trying to parse it as XML (XRD), and failing.

I finally got a look at the HTTP request headers Pleroma is sending, and notably they include Accept: application/xrd+xml, application/jrd+json. We're returning JRD, with Content-Type: application/jrd+json, which they say they'll accept, but then they incorrectly try to parse it as XML. May be worth filing as a bug with them.

In the meantime, I'll work on more sophisticated Accept parsing and actual content negotiation. Ugh. Conneg is the worst. 😆

snarfed commented 3 years ago

OK! Done, we now handle their Accept header and return XRD for both host-meta and webfinger queries.

jk-na commented 3 years ago

Parsing-wise it looks better indeed, it seems like the request is being processed by pleroma but I don't see a follow up DB write.. and still getting this Could not validate against known public keys: {:error, {:error, "acct:jk.nipponalba.scot@jk.nipponalba.scot"}}

As per below it looks like it is passing the earlier hurdles.

Mar 14 19:45:48 MatrixRock pleroma: request_id=FmxNG-wPPPOMM-IAKYFh [debug] POST /users/jk/inbox Mar 14 19:45:48 MatrixRock pleroma: request_id=FmxNG-wPPPOMM-IAKYFh [debug] Processing with Pleroma.Web.ActivityPub.ActivityPubController.inbox/2#012 Parameters: %{"@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/#bridgy-fed-create", "nickname" => "jk", "object" => %{"@context" => "https://www.w3.org/ns/activitystreams", "attributedTo" => [%{"icon" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "id" => "https://fed.brid.gy/jk.nipponalba.scot", "image" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "name" => "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site", "preferredUsername" => "jk.nipponalba.scot", "type" => "Person", "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot"}], "cc" => ["https://www.w3.org/ns/activitystreams#Public", "https://social.nipponalba.scot/users/jk", "https://social.nipponalba.scot/users/jk/followers"], "content" => "<p>Test #2</p>", "id" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/", "inReplyTo" => "https://social.nipponalba.scot/objects/c341db0a-ad7e-406a-9b9f-07b575ce9f61", "name" => "Test #2", "published" => "11 Mar 2021 08:44 GMT", "tag" => [%{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}, %{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}], "type" => "Note", "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/", "urls" => [%{"value" => "https://jk.nipponalba.scot/response/6049d880/"}, %{"value" => "https://fed.brid.gy/"}]}, "type" => "Update"}#012 Pipelines: [:activitypub] Mar 14 19:45:52 MatrixRock pleroma: request_id=FmxNG-wPPPOMM-IAKYFh [debug] Could not validate against known public keys: {:error, {:error, "acct:jk.nipponalba.scot@jk.nipponalba.scot"}} Mar 14 19:45:52 MatrixRock pleroma: request_id=FmxNG-wPPPOMM-IAKYFh [debug] Sent 400 in 3899ms Mar 14 19:45:52 MatrixRock pleroma: request_id=FmxNG-wPPPOMM-IAKYFh [info] Sent 400 in 3901ms

jk-na commented 3 years ago

I'm wondering if maybe this is related to HTTP signatures, I know that up until recently pixelfed hadn't implemented them and I didn't see my posts from of in my pleroma feed.. will try disabling them in a little while and see if it works

jk-na commented 3 years ago

I tried disabling HTTP signature on fetches and also Strict-Transport-Security to see if the error might vanish but still I'm seeing Could not validate against known public keys: {:error, {:error, "acct:jk.nipponalba.scot@jk.nipponalba.scot"}}

I'm not sure if it's related but, I wonder if perhaps an actor property is required for activity and/or object? It's kind of hard to parse a huge debug log but it does seem that successful requests followed by DB activity contain at least one actor. E.g.

"actor" => "https://mythago.space/users/ghost_bird"

Mar 15 08:48:38 MatrixRock pleroma: request_id=Fmx309xY_VeYvwoAAAoD [debug] Processing with Pleroma.Web.ActivityPub.ActivityPubController.inbox/2#012 Parameters: %{"@context" => ["https://www.w3.org/ns/activitystreams", %{"Emoji" => "toot:Emoji", "atomUri" => "ostatus:atomUri", "conversation" => "ostatus:conversation", "focalPoint" => %{"@container" => "@list", "@id" => "toot:focalPoint"}, "inReplyToAtomUri" => "ostatus:inReplyToAtomUri", "ostatus" => "http://ostatus.org#", "sensitive" => "as:sensitive", "toot" => "http://joinmastodon.org/ns#", "votersCount" => "toot:votersCount"}], "actor" => "https://mythago.space/users/ghost_bird", "cc" => ["https://www.w3.org/ns/activitystreams#Public", "https://weirder.earth/users/stitchandsew"], "id" => "https://mythago.space/users/ghost_bird/statuses/105892944907997357/activity", "object" => %{"atomUri" => "https://mythago.space/users/ghost_bird/statuses/105892944907997357", "attachment" => [], "attributedTo" => "https://mythago.space/users/ghost_bird", "cc" => ["https://www.w3.org/ns/activitystreams#Public", "https://weirder.earth/users/stitchandsew"], "content" => "<p><span class=\"h-card\"><a href=\"https://weirder.earth/@stitchandsew\" class=\"u-url mention\">@<span>stitchandsew</span></a></span> :heart_trans:</p>", "conversation" => "tag:weirder.earth,2021-03-15:objectId=22484257:objectType=Conversation", "id" => "https://mythago.space/users/ghost_bird/statuses/105892944907997357", "inReplyTo" => "https://weirder.earth/users/stitchandsew/statuses/105892938932311950", "inReplyToAtomUri" => "https://weirder.earth/users/stitchandsew/statuses/105892938932311950", "published" => "2021-03-15T08:48:29Z", "replies" => %{"first" => %{"items" => [], "next" => "https://mythago.space/users/ghost_bird/statuses/105892944907997357/replies?only_other_accounts=true&page=true", "partOf" => "https://mythago.space/users/ghost_bird/statuses/105892944907997357/replies", "type" => "CollectionPage"}, "id" => "https://mythago.space/users/ghost_bird/statuses/105892944907997357/replies", "type" => "Collection"}, "sensitive" => false, "summary" => nil, "tag" => [%{"href" => "https://weirder.earth/users/stitchandsew", "name" => "@stitchandsew@weirder.earth", "type" => "Mention"}, %{"icon" => %{"mediaType" => "image/png", "type" => "Image", "url" => "https://cdn.masto.host/mythagospace/custom_emojis/images/000/000/423/original/b1cca85cf0f76c57.png"}, "id" => "https://mythago.space/emojis/423", "name" => ":heart_trans:", "type" => "Emoji", "updated" => "2020-04-29T10:46:26Z"}], "to" => ["https://mythago.space/users/ghost_bird/followers"], "type" => "Note", "url" => "https://mythago.space/@ghost_bird/105892944907997357"}, "published" => "2021-03-15T08:48:29Z", "signature" => %{"created" => "2021-03-15T08:48:29Z", "creator" => "https://mythago.space/users/ghost_bird#main-key", "signatureValue" => "jyNKFbu5pgZky9lpuPHa5IIf0d1HIDmrtU8uCXbuy/TzPrFUrjyIgS3rVoKTnajl6pMEivDr8lh8AlwSBy4uD/IpCIW5PZqAyTjbQpDQhagc7doro+H7qhZW/EU0TL3uZ+sqIlC8HRIV4PbdnT6I59ke57S5d5BCGu+eOmhoI9UKKkVUZqrcIOuBBfFffUYH/35uLyPNfNWDObUWAHL2iT65Ay07RGLAoUmS1VZZS4Gf8GS4uv5LxmdsHW8/++nTajiJ9A/RT55J7Guppa2ZfgpvLFgKmNO0V3SjBFU9tYs8GXBXbsSSi0XpyrBFE4aa3xG4ho0hVoh8ThtMKR+6PQ==", "type" => "RsaSignature2017"}, "to" => ["https://mythago.space/users/ghost_bird/followers"], "type" => "Create"}#012 Pipelines: [:activitypub]

snarfed commented 3 years ago

Very possible! I tried re-sending with an actor just now and got an opaque 400 with body "error":

$ curl -v -H 'Content-Type: application/activity+json' https://social.nipponalba.scot/users/jk/inbox -d '{"@context": "https://www.w3.org/ns/activitystreams", "id": "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/#bridgy-fed-create", "nickname": "jk", "actor": {"icon": {"type": "Image", "url": "https://jk.nipponalba.scot/images/profile.jpg"}, "id": "https://fed.brid.gy/jk.nipponalba.scot", "image": {"type": "Image", "url": "https://jk.nipponalba.scot/images/profile.jpg"}, "name": "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site", "preferredUsername": "jk.nipponalba.scot", "type": "Person", "url": "https://fed.brid.gy/r/https://jk.nipponalba.scot"}, "object": {"@context": "https://www.w3.org/ns/activitystreams", "attributedTo": [{"icon": {"type": "Image", "url": "https://jk.nipponalba.scot/images/profile.jpg"}, "id": "https://fed.brid.gy/jk.nipponalba.scot", "image": {"type": "Image", "url": "https://jk.nipponalba.scot/images/profile.jpg"}, "name": "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site", "preferredUsername": "jk.nipponalba.scot", "type": "Person", "url": "https://fed.brid.gy/r/https://jk.nipponalba.scot"}], "cc": ["https://www.w3.org/ns/activitystreams#Public", "https://social.nipponalba.scot/users/jk", "https://social.nipponalba.scot/users/jk/followers"], "content": "<p>Test #2</p>", "id": "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/", "inReplyTo": "https://social.nipponalba.scot/objects/c341db0a-ad7e-406a-9b9f-07b575ce9f61", "name": "Test #2", "published": "11 Mar 2021 08:44 GMT", "tag": [{"href": "https://social.nipponalba.scot/users/jk", "type": "Mention"}, {"href": "https://social.nipponalba.scot/users/jk", "type": "Mention"}], "type": "Note", "url": "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/", "urls": [{"value": "https://jk.nipponalba.scot/response/6049d880/"}, {"value": "https://fed.brid.gy/"}]}, "type": "Update"}'
...
< HTTP/2 400 
* Connection #0 to host social.nipponalba.scot left intact
"error"
* Closing connection 0

Here's the activity I sent:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/#bridgy-fed-create",
  "nickname": "jk",
  "actor": {
    "icon": {
      "type": "Image",
      "url": "https://jk.nipponalba.scot/images/profile.jpg"
    },
    "id": "https://fed.brid.gy/jk.nipponalba.scot",
    "image": {
      "type": "Image",
      "url": "https://jk.nipponalba.scot/images/profile.jpg"
    },
    "name": "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site",
    "preferredUsername": "jk.nipponalba.scot",
    "type": "Person",
    "url": "https://fed.brid.gy/r/https://jk.nipponalba.scot"
  },
  "object": {
    "@context": "https://www.w3.org/ns/activitystreams",
    "attributedTo": [
      {
        "icon": {
          "type": "Image",
          "url": "https://jk.nipponalba.scot/images/profile.jpg"
        },
        "id": "https://fed.brid.gy/jk.nipponalba.scot",
        "image": {
          "type": "Image",
          "url": "https://jk.nipponalba.scot/images/profile.jpg"
        },
        "name": "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site",
        "preferredUsername": "jk.nipponalba.scot",
        "type": "Person",
        "url": "https://fed.brid.gy/r/https://jk.nipponalba.scot"
      }
    ],
    "cc": [
      "https://www.w3.org/ns/activitystreams#Public",
      "https://social.nipponalba.scot/users/jk",
      "https://social.nipponalba.scot/users/jk/followers"
    ],
    "content": "<p>Test #2</p>",
    "id": "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/",
    "inReplyTo": "https://social.nipponalba.scot/objects/c341db0a-ad7e-406a-9b9f-07b575ce9f61",
    "name": "Test #2",
    "published": "11 Mar 2021 08:44 GMT",
    "tag": [
      {
        "href": "https://social.nipponalba.scot/users/jk",
        "type": "Mention"
      },
      {
        "href": "https://social.nipponalba.scot/users/jk",
        "type": "Mention"
      }
    ],
    "type": "Note",
    "url": "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/",
    "urls": [
      {
        "value": "https://jk.nipponalba.scot/response/6049d880/"
      },
      {
        "value": "https://fed.brid.gy/"
      }
    ]
  },
  "type": "Update"
}
jk-na commented 3 years ago

OK, so between 21:37:18 (my server time - about 20 minutes ago), the logs have 7 different requests for this (not sure if that correlates to seven attempts or pleroma retries)

The first three had an Internal Server error relating to parsing.

The subsequent four didn't have that error AND didn't have the validation error.

The first block is from one of the internal server error requests and second from one of the subsequent attempts:

Mar 15 21:37:18 MatrixRock pleroma: request_id=Fmyhxiyrx7Gx5CIAArmB [error] Internal server error: %Plug.Parsers.ParseError{exception: %Jason.DecodeError{data: "{\"@context\": \"https://www.w3.org/ns/activitystreams\", \"id\": \"https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/#bridgy-fed-create\", \"nickname\": \"jk\", \"actor\": [{\"icon\": [{\"type\": \"Image\", \"url\": \"https://jk.nipponalba.scot/images/profile.jpg\"}], \"id\": \"https://fed.brid.gy/jk.nipponalba.scot\", \"image\": [{\"type\": \"Image\", \"url\": \"https://jk.nipponalba.scot/images/profile.jpg\"}], \"name\": \"J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site\", \"preferredUsername\": \"jk.nipponalba.scot\", \"type\": \"Person\", \"url\": \"https://fed.brid.gy/r/https://jk.nipponalba.scot\"}, \"object\": {\"@context\": \"https://www.w3.org/ns/activitystreams\", \"attributedTo\": [{\"icon\": [{\"type\": \"Image\", \"url\": \"https://jk.nipponalba.scot/images/profile.jpg\"}], \"id\": \"https://fed.brid.gy/jk.nipponalba.scot\", \"image\": [{\"type\": \"Image\", \"url\": \"https://jk.nipponalba.scot/images/profile.jpg\"}], \"name\": \"J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site\", \"preferredUsername\": \"jk.nipponalba.scot\", \"type\": \"Person\", \"url\": \"https://fed.brid.gy/r/https://jk.nipponalba.scot\"}], \"cc\": [\"https://www.w3.org/ns/activitystreams#Public\", \"https://social.nipponalba.scot/users/jk\", \"https://social.nipponalba.scot/users/jk/followers\"], \"content\": \"<p>Test #2</p>\", \"id\": \"https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/\", \"inReplyTo\": \"https://social.nipponalba.scot/objects/c341db0a-ad7e-406a-9b9f-07b575ce9f61\", \"name\": \"Test #2\", \"published\": \"11 Mar 2021 08:44 GMT\", \"tag\": [{\"href\": \"https://social.nipponalba.scot/users/jk\", \"type\": \"Mention\"}, {\"href\": \"https://social.nipponalba.scot/users/jk\", \"type\": \"Mention\"}], \"type\": \"Note\", \"url\": \"https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/\", \"urls\": [{\"value\": \"https://jk.nipponalba.scot/response/6049d880/\"}, {\"value\": \"https://fed.brid.gy/\"}]}, \"type\": \"Update\"}", position: 594, token: nil}, plug_status: 400} Mar 15 21:37:18 MatrixRock pleroma: request_id=Fmyhxiyrx7Gx5CIAArmB [debug] Converted error Plug.Parsers.ParseError to 400 response

Mar 15 21:40:00 MatrixRock pleroma: request_id=Fmyh6804JypRUkMAArxh [debug] POST /users/jk/inbox Mar 15 21:40:00 MatrixRock pleroma: request_id=Fmyh6804JypRUkMAArxh [debug] Processing with Pleroma.Web.ActivityPub.ActivityPubController.inbox/2#012 Parameters: %{"@context" => "https://www.w3.org/ns/activitystreams", "actor" => %{"icon" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "id" => "https://fed.brid.gy/jk.nipponalba.scot", "image" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "name" => "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site", "preferredUsername" => "jk.nipponalba.scot", "type" => "Person", "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot"}, "id" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/#bridgy-fed-create", "nickname" => "jk", "object" => %{"@context" => "https://www.w3.org/ns/activitystreams", "attributedTo" => [%{"icon" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "id" => "https://fed.brid.gy/jk.nipponalba.scot", "image" => [%{"type" => "Image", "url" => "https://jk.nipponalba.scot/images/profile.jpg"}], "name" => "J K 🇯🇵🏴󠁧󠁢󠁳󠁣󠁴󠁿 | personal site", "preferredUsername" => "jk.nipponalba.scot", "type" => "Person", "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot"}], "cc" => ["https://www.w3.org/ns/activitystreams#Public", "https://social.nipponalba.scot/users/jk", "https://social.nipponalba.scot/users/jk/followers"], "content" => "<p>Test #2</p>", "id" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/", "inReplyTo" => "https://social.nipponalba.scot/objects/c341db0a-ad7e-406a-9b9f-07b575ce9f61", "name" => "Test #2", "published" => "11 Mar 2021 08:44 GMT", "tag" => [%{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}, %{"href" => "https://social.nipponalba.scot/users/jk", "type" => "Mention"}], "type" => "Note", "url" => "https://fed.brid.gy/r/https://jk.nipponalba.scot/response/6049d880/", "urls" => [%{"value" => "https://jk.nipponalba.scot/response/6049d880/"}, %{"value" => "https://fed.brid.gy/"}]}, "type" => "Update"}#012 Pipelines: [:activitypub] Mar 15 21:40:00 MatrixRock pleroma: request_id=Fmyh6804JypRUkMAArxh [debug] No signature header! Mar 15 21:40:00 MatrixRock pleroma: request_id=Fmyh6804JypRUkMAArxh [debug] Sent 400 in 21ms Mar 15 21:40:00 MatrixRock pleroma: request_id=Fmyh6804JypRUkMAArxh [info] Sent 400 in 28ms

From the latter one, we now have a no signature header error.

jk-na commented 3 years ago

.. oh, I think I see some database activity in relation to one of the requests..

edit: not write activities though, seems like a query against the users DB for https://fed.brid.gy/jk.nipponalba.scot

snarfed commented 3 years ago

Ah, yes, I didn't send an HTTP sig with these since they were manual, and you said you'd disabled sig checking. If it looks like that's the blocker, I can make Bridgy Fed add actors like this and we can try again for real.

jk-na commented 3 years ago

I had re-enabled it but can disable again when we're ready to try again, if required.

mark4409 commented 2 years ago

Hi - just wondering if anymore progress was made on this?

snarfed commented 2 years ago

@mark4409 thanks for asking! I haven't looked into it much more myself, but if you're familiar with Pleroma, feel free to try it out against a recent Pleroma version, see how it goes, and document the results. Bridgy Fed and Pleroma both support AP, so I suspect we're close!

mark4409 commented 2 years ago

Does brid.gy support Pleroma too?, or would I need Bridgy Fed?

snarfed commented 2 years ago

Yes! Unofficially at least, by pretending it's Mastodon, since the API is compatible-ish. Background: https://github.com/snarfed/bridgy/search?q=pleroma&type=issues

mark4409 commented 2 years ago

Well I've not tested this but I can at least confirm that brid.gy does work with Pleroma via webmentions.

snarfed commented 1 year ago

I tried liking this post on cawfee.club just now, which is running Pleroma v2.5.50, and AP inbox delivery to https://cawfee.club/users/admin/inbox failed with HTTP 500 {"errors":{"detail":"Internal server error"}}. Bridgy Fed log here.

I also keep getting a red "Error fetching timeline: 500 Internal Server Error" banner at the top of all cawfee.club pages, which isn't a great sign.

Here's the full AS2 object we sent in that inbox delivery request:

{
  "published": "2023-01-17T09:50:15-08:00",
  "content": "likes <a class=\"u-like u-like-of\" href=\"https://cawfee.club/notice/AQbF6m6L5zonu2szYW\">Cawfee Club</a>",
  "url": "https://fed.brid.gy/r/https://snarfed.org/2023-01-17_cawfee-club-2",
  "actor": {
    "url": "https://fed.brid.gy/r/https://snarfed.org/",
    "image": {
      "url": "https://secure.gravatar.com/avatar/947b5f3f323da0ef785b6f02d9c265d6?s=96&d=blank&r=g",
      "type": "Image"
    },
    "type": "Person",
    "name": "Ryan Barrett",
    "icon": {
      "url": "https://secure.gravatar.com/avatar/947b5f3f323da0ef785b6f02d9c265d6?s=96&d=blank&r=g",
      "type": "Image"
    },
    "id": "https://fed.brid.gy/snarfed.org",
    "preferredUsername": "[snarfed.org](http://snarfed.org/)"
  },
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Like",
  "object": "https://cawfee.club/objects/861829c2-aaa7-4b2c-afb9-1f3ac7be79fc",
  "id": "https://fed.brid.gy/r/https://snarfed.org/2023-01-17_cawfee-club-2",
  "cc": [
    "https://cawfee.club/users/admin",
    "https://www.w3.org/ns/activitystreams#Public",
    "https://cawfee.club/users/admin/followers"
  ],
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ]
}
snarfed commented 9 months ago

Progress after #442! Got a Like to work. A reply still 500ed though.

snarfed commented 8 months ago

Also, wow, Pleroma prefixes our handles with an ugly hash id, eg https://pleroma.envs.net/users/ARH2JS1YMQXugE3HZw says I'm @ARH2JS1YMQXugE3HZw.snarfed.org@snarfed.org:

image
snarfed commented 8 months ago

@srijan says this doesn't happen on his Akkoma instance, eg https://fedi.srijan.dev/users/ARH2J8WrU9En9ZzmSG, so it may be a misconfiguration or other problem on pleroma.envs.net specifically?

snarfed commented 8 months ago

Filed https://git.pleroma.social/pleroma/pleroma/-/issues/3206 for the reply inbox delivery 500.