I’m not sure this is a bug in Discourse. I’ve responded on the issue on Mastodon. Cross posting here for convenience:
The reason we return a 400 in that scenario is that the ActivityPub spec seems to require it.
POST requests (eg. to the inbox) MUST be made with a Content-Type of application/ld+json; profile=“ActivityStreams 2.0 Terms” and GET requests (see also 3.2 Retrieving objects) with an Accept header of application/ld+json; profile=“ActivityStreams 2.0 Terms”
@ClearlyClaire Is there a need to add
text/html;q=0.1
to theAccept
header?