Não tenho certeza se este é um bug no Discourse. Respondi à questão no Mastodon. Cruzando postagens aqui para conveniência:
O motivo pelo qual retornamos um 400 nesse cenário é que a especificação do ActivityPub parece exigi-lo.
Requisições POST (por exemplo, para a caixa de entrada) DEVEM ser feitas com um Content-Type de application/ld+json; profile=“ActivityStreams 2.0 Terms” e requisições GET (veja também 3.2 Recuperando objetos) com um cabeçalho Accept de application/ld+json; profile=“ActivityStreams 2.0 Terms”
@ClearlyClaire É necessário adicionar
text/html;q=0.1ao cabeçalhoAccept?