Federation issue

I’m having trouble using my Write.as-hosted blog with the fediverse. My blog is hosted on Write.as, but I’m using my own domain. I signed up for the Pro plan, and I’m able to access my blog just fine from a web browser at that domain. Federation is enabled in the Updates section of my blog settings. I can’t find it under any combination of the formats specified in the OP, though the one I would most expect to work is the one exactly specified on the blog configure page: @username@my.domain.example, though I would also hope that https://my.domain.example/username would also work (not sure about the Write.as-hosted ones given that I’m using my own domain. I have tried enabling & saving & testing & disabling & saving & enabling & saving & testing to no effect.

I suspect that federation is just… not enabled for my blog despite the box being checked and saved on the blog configure page. This is because https://my.domain.example/api/nodeinfo throws me a Write.as branded 404. The instructions in the OP say to get in touch with my admin so: Hey @matt, could you double check to make sure federation is turned on for me?

My username & the domain I'm using.

My Write.as username is tilde and the domain I’m using is writing.tildelowengrimm.com.

This one was a bit of a learning curve for me as well. Here’s my setup (also using a custom domain). Hopefully you can reproduce it for yours:

My Write.as site domain:
markwrites.io

My Write.as username:
markwyner

My ActivityPub handle:
@markwyner@write.as (note, it’s not my custom domain)

Example Mastodon URL from my instance:
mas.to/@markwyner@write.as

But you can’t treat your handle like most fediverse instances because of the Write.as DNS is set-up. For example, my Mastodon handle is @markwyner@mas.to. That translates to the following URL:

https://mas.to/@markwyner

However, you can’t convert your Write.as handle the same way. In my case that URL would normally be:

https://write.as/markwyner/

But that’s my Write.as URL.

Based on all of this information, your Write.as handle should be:

@tilde@write.as

I found you there and show that you have 1 follower, even.

2 Likes

Thanks for the reply! That sounds like a straight up bug since the observed behavior doesn’t match either the OP in this thread or the prominent indication in the Customize page. I’ve filed #1039 on GitHub.

1 Like

Sorry for the slow response here! This does seem to be a bug of some kind, limited specifically to custom domains hosted on Write.as. I’m investigating today, but from what I can see:

Your blog also returns an ActivityPub actor, as it should. However, that data gives data (like an id) on https://write.as instead of on your custom domain.

See request and results here
curl -H 'Accept: application/activity+json", text/html;q=0.1' \
https://writing.tildelowengrimm.com

Results:

{
    "@context": [
        "https://www.w3.org/ns/activitystreams"
    ],
    "type": "Person",
    "id": "https://write.as/api/collections/tilde",
    "inbox": "https://write.as/api/collections/tilde/inbox",
    "outbox": "https://write.as/api/collections/tilde/outbox",
    "preferredUsername": "tilde",
    "url": "http://writing.tildelowengrimm.com/",
    "name": "~/writing",
    "icon": {
        "type": "Image",
        "mediaType": "image/jpeg",
        "url": "https://i.snap.as/YCVX42wX.jpg"
    },
    "following": "https://write.as/api/collections/tilde/following",
    "followers": "https://write.as/api/collections/tilde/followers",
    "summary": "Longer writing from [Tilde](https://infosec.town/@tilde) [Lowengrimm](https://tildelowengrimm.com).",
    "publicKey": {
        "id": "https://write.as/api/collections/tilde#main-key",
        "owner": "https://write.as/api/collections/tilde",
        "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3jautHxDP+xt5Dsg/fCb\nk68JlelD4q8ELycSVwboaPJPzUnk69k7DX9bm/nTvUOGVXsgtxYFAP/Ochs08Euz\nESp9hoBTBRS1DpPNYynZWYv6BU+0xa/DyketGCxdGIg/T33YD1fCDpYPnhCyKwPW\nKhgpIrLyMfJZXTrTxcSsTklUX6YCUlTeasAn4hXukOdVXm8UiiShYHoXNHmmMtmo\nsIQn3WFRgKTxdKVhK8JBG7ZeKMpFOwm+brxAdVO2/viHpXd/rGgqv7qlh4bqG+Cu\n5xbgup+RODdyeuXjzDartDXYO2hbTAghZLSp7lH8ZXlpAo58Yw9Vw4KHVrTKBXp5\nWwIDAQAB\n-----END PUBLIC KEY-----\n"
    },
    "endpoints": {}
}

Also, your custom domain is showing on http instead of https, which means our systems haven’t detected that your site is active. I’m going to manually activate it and see if that works here.

That seems to have fixed it, @_tilde! I’m now able to pull up your blog @tilde-is-writing@writing.tildelowengrimm.com and follow it from Mastodon.

Otherwise, I’ll dig into why our domain validation failed here. The only potential issue might be DNS – it should be me.writeas.com instead of [username].writeas.com. But could very well be something else. Either way, you should be all set now!

Also, just to note, any current followers of @tilde@write.as will want to re-follow at your new custom domain handle – on Mastodon, they’re two separate accounts.

Hey @markwyner, everything seems to be okay with your domain – when searching https://markwrites.io on Mastodon, it shows the correct handle for me.

Did you follow your blog from Mastodon before setting up your custom domain? Or did it not work at first?

I think we can disable the @username@write.as handle on our end when people have a custom domain set up, just to be sure there isn’t confusion.

Oh, that’s interesting. I’ve only been referencing my @write.as Mastodon handle, not even realizing my custom domain version was published.

So there are two Write.as Mastodon accounts for me…

No custom domain:

Custom domain:

The latter shows my latest article, while the former does not. So it seems to have appropriately replaced the one with no custom domain. But the custom domain also only shows my latest post. I’m sure if I post again it will publish there, but all of my older posts are only available on the non-custom-domain version. That also tracks with how Mastodon works with migrated accounts, since posts don’t transfer over.

Also, yes, I did indeed follow my blog from Mastodon before setting up my custom domain. Given what I see here, it seems logical to disable the default handle when a custom domain is used. Personally, I’d rather not have two of them.