Quote Post Implementation Issues

Help me, Social-Wan, you’re my only hope!

I am trying to extend my ActivityBot server to support quote posts. I am 90% of the way there - but stuck on making the quoted post visible to other servers.

The bot’s statuses can be quoted on Mastodon.social. But when other servers see the quote post, they get the error:

This post cannot be displayed as the original author does not allow it to be quoted.

Here’s an example of a quoted post which works: https://mastodon.social/deck/@Edent/115283258638446343

The same status on a different server is broken: https://k8s.social/@Edent@mastodon.social/115283258817057380

My bot’s statuses have:

"interactionPolicy": {
  "canQuote": {
    "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
  }
}

Which is what allows them to be quoted.

I’ve issued a QuoteAuthorization stamp which is viewable on the web - https://colours.bots.edent.tel/quotes/68d979af-3a15-f520-ac6e-13b2d6d96d1b.json

I’ve sent an Accept message which references the stamp - https://colours.bots.edent.tel/quotes/68d979af-aeb1-83c3-a66c-fcb359e1ff90.json

The quoting status also references the stamp - https://mastodon.social/@Edent/115283258638446343.json

So why does only Mastodon.social display the quote - but other Fediverse servers cannot display it?

As replied on the fediverse, your QuoteAuthorization has an id that points to a different activity, so it cannot be verified and is treated as invalid.

Mastodon.social got an Accept from your bot server so trusts the stamp is valid without checking the stamp. This is a choice we made to cut down on traffic and simplify implementation, trusting that the authoritative party will create a valid stamp accompanying the Accept. This has the downside of leading to inconsistent results when there is an implementation bug, though.

1 Like

@Claire you are a genius and I owe you a drink!