No estoy seguro de que esto sea un error en Discourse. He respondido en el problema en Mastodon. Publicando aquí para mayor comodidad:
La razón por la que devolvemos un 400 en ese escenario es que la especificación de ActivityPub parece requerirlo.
Las solicitudes POST (por ejemplo, a la bandeja de entrada) DEBEN realizarse con un Content-Type de application/ld+json; profile=“ActivityStreams 2.0 Terms” y las solicitudes GET (ver también 3.2 Recuperación de objetos) con una cabecera Accept de application/ld+json; profile=“ActivityStreams 2.0 Terms”
@ClearlyClaire ¿Es necesario añadir
text/html;q=0.1a la cabeceraAccept?