23 days later

blit Unfortunately, this is a direct result of unfortunate practice that can be traced back to Pleroma-FE.

Pleroma-FE added support for loading user profiles using https://pleroma.instance.tld/{username} shortcut.
For example, you can load Lain's (creator of Pleroma) fediverse profile using both:

  1. https://lain.com/users/lain
  2. https://lain.com/lain

To answer the question of which one is canonical let's use webfinger: https://webfinger.net/lookup/?resource=acct:lain@lain.com.
As you can see in the returned output:

[{
  "rel": "http://webfinger.net/rel/profile-page",
  "type": "text/html",
  "href": "https://lain.com/users/lain"
}, {
  "rel": "self",
  "type": "application/activity+json",
  "href": "https://lain.com/users/lain"
}]

both the profile page and ActivityPub endpoint actually live under https://lain.com/users/lain

This behavior was then carried over to Akkoma-FE as one could easily demonstrate using Linus Torvald's fediverse account hosted on https://social.kernel.org Akkoma instance:

  1. https://social.kernel.org/users/torvalds
  2. https://social.kernel.org/torvalds

Again if you check webfinger's output: https://webfinger.net/lookup/?resource=acct:torvalds@social.kernel.org you'll notice that the canonical location is https://social.kernel.org/users/torvalds.

This mess was once again carried over to Soapbox (FE)/Managane but this time with a new shortcut form: https://akkoma.instance.tld/@{username}.
So for example, one could load https://bdx.town's admin fediverse profile using both:

  1. https://bdx.town/users/clovis (redirect that happens is executed on the client-side)
  2. https://bdx.town/@clovis

And once again webfinger's output: https://webfinger.net/lookup/?resource=acct:clovis@bdx.town reveals that both the canonical profile and ActivityPub endpoint location is https://bdx.town/users/clovis.

And that is why the thing you read inside the URL bar says https://fe.disroot.org/@blitdev while Keyoxide expects you to use https://fe.disroot.org/users/blitdev.


With all that being said, and since you found the solution by consulting Keyoxide docs I believe we can mark this as Done 🎉