After changing my ActivityPub profile handle, Webfinger still points to /index

When I set up Ghost v6 using the Docker container, the default handle for ActivityPub was @index. I changed it to @pub and that is showing as my preferred name everywhere except in the Webfinger href, which still points to /index.

This means the Actor endpoint won’t work in ActivityPub. Anything I can do to fix this?

The “easy” fix, of course, is to just to reset my ActivityPub profile handle to @index. The Webfinger file gets updated with the correct acct whenever I alter the handle. The self identifier href never updates from this action, so it’s “stuck” as /activitypub/users/index either way.

I’d like to use a different handle in the Fediverse for my site, but for now I’ll keep @index. Since Docker is in preview, I’m guessing this is a low priority fix, but I’m also guessing this is technically not the way it should work, so I’ll file a comment/bug in GitHub if I can. If this gets fixed I’d love to hear about it!

Slight update: I spent a lot of time wrangling Bridgy Fed and added a line to my Nginx config to redirect to fed.brid.gy that was recommended to simplify the handle. In the server block I added:

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

This immediately seemed to help but then seemed to break some connections. I undid the change and then could not get Bridgy Fed to update my handle. It seemed stuck on the “simplified” version. I eventually redid the rewrite and re-followed Bridgy Fed’s accounts. This seems to have unlocked the issues I was having, although the handles still seem “crossed” between Ghost, Bridgy Fed, and Bluesky. Posts from Ghost are now reaching Bluesky and follows and likes are now working, though, so this is a huge improvement. I’ll check back in a couple days to see if those are resolved or cause other issues.

Have you tested to confirm this is a problem in practice? Here’s what I see when testing someone who customized their handle from @index:

{
    "subject": "acct:veronica@veronicaexplains.net",
    "aliases": [
        "https://veronicaexplains.net/.ghost/activitypub/users/index"
    ],
    "links": [
        {
            "rel": "self",
            "href": "https://veronicaexplains.net/.ghost/activitypub/users/index",
            "type": "application/activity+json"
        },
        {
            "rel": "http://webfinger.net/rel/profile-page",
            "href": "https://veronicaexplains.net/"
        }
    ]
}

In ActivityPub, when a user changes their handle, the underlying actor URI often remains unchanged to maintain federation stability and ensure existing followers and references continue to work.

The aliases field in the WebFinger response allows the system to map the new, custom handle back to the original actor URI. This means that while users see and interact with the custom handle, the original identifier (like “index”) persists in the background for routing and compatibility.

According to WebFinger specifications, the server should return consistent link relations for both the acct URI and any aliases, ensuring seamless discovery. So, while the “index” identifier is technically present in the protocol exchange, it is abstracted away from what humans see.