Complemento ActivityPub

|||
-|-|-|
:discourse2: | Resumen | Discourse ActivityPub te permite publicar publicaciones de Discourse a través de ActivityPub para que puedan leerse en servicios que admiten ActivityPub, como Mastodon.
:hammer_and_wrench: | Enlace del Repositorio | GitHub - discourse/discourse-activity-pub: Adds ActivityPub support to Discourse.
:open_book: | Guía de Instalación | Cómo instalar plugins en Discourse

Si no estás familiarizado con ActivityPub, empieza viendo este video corto:

Cuando estés listo para empezar a configurar el plugin, consulta nuestros temas de activitypub Documentation > Integrations

65 Me gusta

¡Gracias por tu trabajo aquí! Tengo muchas ganas de activar esto y gracias por lanzarlo para pruebas, para que aquellos de nosotros con diversas configuraciones podamos contribuir al menos con pruebas en un conjunto más amplio de escenarios.

Mientras pienso en cuándo activar esto para mi sitio, estoy tratando de pensar en cuáles podrían ser las “puertas de sentido único”.

Subcategorías

Tengo 8 categorías de nivel superior, pero además tengo 21 subcategorías públicas. Tener que seguir a 29 actores para seguir toda la actividad pública del sitio parece mucho. Además, podría ser una sorpresa para los usuarios que seguir una categoría no siga las subcategorías.

Si pudiera seleccionar una opción en la configuración de ActivityPub de la categoría “federar también subcategorías públicas”, lo haría. Si federar subcategorías por separado parece ser principalmente una puerta de sentido único desde el punto de vista del usuario, creo. Por lo tanto, si considerara una opción de “federar también subcategorías”, eso podría informar mis planes. Nuestra barra lateral predeterminada muestra solo las categorías de nivel superior, y la configuración predeterminada de Discourse al mirarlas es todo el contenido de nivel superior y subcategoría junto, por lo que esto parece razonablemente consistente con las expectativas de Discourse.

¡Federar todo!

Creo que también sería interesante agregar una configuración a nivel de sitio para un actor de ActivityPub que federara todas las publicaciones públicas en un sitio. Yo mismo lo usaría. Pero no lo veo como una puerta de sentido único: configuraría la federación de categorías tan pronto como estuviera lista, incluso si luego agregara un actor “all@” para federar todo.

Limitaciones de edición

Una de las cosas que no es obvia en tu publicación es que se puede leer que solo la sección literal [note]...[/note] no se puede editar. Para otros aquí, lo que realmente significa es que si federas, la edición está actualmente deshabilitada en todas las publicaciones tan pronto como se federan (excepto para las publicaciones con una sección literal [note]...[/note]); este mensaje aparece solo cuando intentas guardar tu edición:

Mi sitio permite intencionalmente a los usuarios suficientemente confiables editar indefinidamente, por lo que no puedo activar esto sin la capacidad de deshabilitar este control (o que el control sea eliminado porque las ediciones se federan). A modo de ejemplo general aplicable más allá de tales sitios confiables, cualquier categoría con publicaciones en modo wiki se romperá al configurar la federación para esa categoría.

Intenté eliminar una publicación federada que había convertido en wiki y obtuve esto:

Sin embargo, la publicación se eliminó y la eliminación se federó.

Personalidad

Sería bueno proporcionar una imagen de perfil para cada actor designado. En Mastodon, solo veo la imagen del elefante gris para cada actor de categoría, y me encantaría agregar un poco de personalidad aquí. :smiling_face:

Registros de errores

Hasta ahora, he obtenido dos tipos de errores en mis registros del plugin activitypub:

Message (3 copies reported)

NoMethodError (undefined method `ap_type' for nil:NilClass)
(eval):7:in `_fast_attributes'
app/controllers/application_controller.rb:418:in `block in with_resolved_locale'
app/controllers/application_controller.rb:418:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:367:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'

Backtrace

plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:18:in `object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:18:in `_object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:9:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:50:in `json'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `map'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `ordered_items'
(eval):7:in `_fast_attributes'
Message

Job exception: undefined method `model' for #<DiscourseActivityPubActivity id: 2, ap_id: "https://social.makerforums.info/cf2e1e8d-83e3-447e...", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 3, object_id: "1", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 02:23:13.798564000 +0000", updated_at: "2023-06-01 02:23:13.798564000 +0000">

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activemodel-7.0.4.3/lib/active_model/attribute_methods.rb:458:in `method_missing'
/var/www/discourse/plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:79:in `after_deliver'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:42:in `perform_request'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:13:in `execute'
/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'
/var/www/discourse/app/jobs/base.rb:232:in `each'
/var/www/discourse/app/jobs/base.rb:232:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'

¡Gracias de nuevo por tu trabajo en esto!

8 Me gusta

Me complace decir que SocialHub ya lo está ejecutando:

… tocar, tocar, tocar…

Ya debería haber aparecido en Fediverse… Revisando los registros…

Oh, hay problemas con el primer intento de seguir a un actor:

  • Job exception: undefined method model’ for #\u003cDiscourseActivityPubActivity id: 2, ap_id: "https://ps.s10y.eu/820e6bf2-ec02-49f8-ab5e-e3cefbb…", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 4, object_id: "2", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 13:30:16.131136000 +0000", updated_at: "2023-06-01 13:30:16.131136000 +0000"\u003e`
  • Job exception: undefined method model’ for #\u003cDiscourseActivityPubActivity id: 8, ap_id: "https://mastodon.social/ce62fd77-fe03-4060-a951-79…", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 8, object_id: "2", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 13:39:14.512966000 +0000", updated_at: "2023-06-01 13:39:14.512966000 +0000"\u003e`
  • Job exception: undefined method model’ for #\u003cDiscourseActivityPubActivity id: 6, ap_id: "https://social.coop/4236c87a-0d22-402d-8546-e37a21…", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 6, object_id: "2", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 13:38:54.493118000 +0000", updated_at: "2023-06-01 13:38:54.493118000 +0000"\u003e`
Aquí está el backtrace del último
active_model-7.0.4.3/lib/active_model/attribute_methods.rb:458:in `method_missing'

/var/www/discourse/plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:79:in `after_deliver'

/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:42:in `perform_request'

/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:13:in `execute'

/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'

rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'

/var/www/discourse/app/jobs/base.rb:232:in `each'

/var/www/discourse/app/jobs/base.rb:232:in `perform'

sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'

sidekiq-6.5.9/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'

sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'

/var/www/discourse/lib/sidekiq/pausable.rb:134:in `call'

sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'

sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:182:in `invoke'

sidekiq-6.5.9/lib/sidekiq/processor.rb:169:in `block in process'

sidekiq-6.5.9/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_retry.rb:113:in `local'

sidekiq-6.5.9/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'

sidekiq-6.5.9/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/processor.rb:263:in `stats'

sidekiq-6.5.9/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_logger.rb:13:in `call'

sidekiq-6.5.9/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_retry.rb:80:in `global'

sidekiq-6.5.9/lib/sidekiq/processor.rb:124:in `block in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_logger.rb:39:in `prepare'

sidekiq-6.5.9/lib/sidekiq/processor.rb:123:in `dispatch'

sidekiq-6.5.9/lib/sidekiq/processor.rb:168:in `process'

sidekiq-6.5.9/lib/sidekiq/processor.rb:78:in `process_one'

sidekiq-6.5.9/lib/sidekiq/processor.rb:68:in `run'

sidekiq-6.5.9/lib/sidekiq/component.rb:8:in `watchdog'

sidekiq-6.5.9/lib/sidekiq/component.rb:17:in `block in safe_thread'

La Nota no parece aparecer en mi feed :frowning:

(siéntete libre de mover este mensaje a un lugar más apropiado)

8 Me gusta

A largo plazo, estoy de acuerdo, esto debería ser específico por actor y configurable. Pero por ahora, el logo del sitio debería ser recogido. A mí me funciona para @feature@meta.discourse.org:

4 Me gusta

Ok, probablemente esto estaba relacionado con uno de los errores que vi, entonces. El logo del sitio tiene mucho sentido para mí.

Pensando en esto… Si hubiera una posibilidad de usar el color de la categoría allí, sería genial, pero no sé si habría un lugar para eso.

4 Me gusta

Lo intenté de nuevo y…

Funciona parcialmente: la nota se acortó un poco demasiado (71 caracteres) del original:

Lo estábamos esperando: ahora gracias a Angus McLeod y al equipo de pavilion, así como a CDCK, Inc. la empresa detrás de #Discourse, el #SocialHub ahora está federado. Puedes seguir @fediverse@socialhub.activitypub.rocks para anuncios generales, y @feps@socialhub.activitypub.rocks para Fediverse Enhancement Proposals.
:hugs:

4 Me gusta

Recomendación general:

Piénsalo unos días antes de habilitar la integración de Activitypub.
Recuerda que estas cuentas se incluirán para siempre en el fediverso de las redes sociales y pueden crear confusión si te das cuenta de que el nombre de la cuenta/categoría debe cambiarse después. :heart:

2 Me gusta

Creo que a largo plazo, sería posible implementar adicionalmente el movimiento de cuentas para renombrar al actor de una categoría. Es solo más trabajo que tiene que ser valioso para alguien dispuesto a hacerlo, así que dudo que sea algo a corto plazo. :smiling_face: ¡Al menos, espero que llegue más tarde que otros trabajos más valiosos! :grin:
Eso no invalida tu punto en absoluto.

3 Me gusta

Gracias por los comentarios, chicos :slight_smile:

@hellekin Esto abordará las excepciones que estabas informando. @mcdanlj También abordará la segunda excepción que informaste (mismo problema).

@mcdanlj El primer problema que informaste es un poco más extraño, ¿con qué frecuencia lo ves? ¿Podrías compartir más detalles?

Gracias por los comentarios al respecto, definitivamente lo consideraremos en la fase 2 del trabajo :+1:

Creo que eso probablemente no sucederá en la fase 2, pero tomado nota :+1:

La edición solo está deshabilitada en el contenido de la publicación que conforma la Nota. Si no usas las etiquetas de Nota, esos son los primeros 500 caracteres, o lo que sea que establezcas en activity pub note excerpt maxlength. Una de las cosas que definitivamente estoy considerando para la fase 2 es requerir etiquetas [note][/note] para una Nota, ya que puedo ver que esto genera confusión.

Puedes abordar esto usando etiquetas [note][/note] para separar la Nota del resto del contenido.

¡Tomado nota! No hemos probado explícitamente esto con publicaciones wiki. Hasta ahora no he podido reproducir tu problema con la eliminación de publicaciones wiki. ¿Puedes reproducirlo de manera confiable? He agregado algunas especificaciones en este PR que están pasando para ese escenario, pero estoy ansioso por llegar al fondo de ese problema.

El análisis del extracto es manejado actualmente por el mismo sistema utilizado para el análisis del extracto de temas en Discourse (a efectos de la lista de temas), que probablemente sea la razón por la que cortó una buena parte de eso (los extractos de la lista de temas también lo habrían hecho). Creo que podríamos necesitar usar un analizador separado, ya que preveo que esto creará algunos problemas. Mantente atento a este problema; definitivamente se abordará en la fase 2.

Ten en cuenta que puedes cambiar el nombre para mostrar como quieras y que la limitación para cambiar el nombre de usuario no es exclusiva de este plugin. Por lo tanto, si bien lo que dices es cierto, esto es cierto para una buena parte del fediverso.

Además, no he incluido el nombre de usuario en el ID del Actor, en parte para permitir la posibilidad de agregar la capacidad de cambiar el nombre de usuario en el futuro.

Los datos de ActivityPub del plugin están abstraídos de los datos de Discourse. No hay una limitación inherente para cambiar el modelo de Discourse (es decir, qué categoría) con el que se asocia un actor. Incluso podrías asociar el actor con un tipo diferente de modelo de Discourse en el futuro, es decir, asociar un Actor que creaste para una categoría con un usuario en su lugar (la relación entre los Actores y los modelos de Discourse es polimórfica). No digo que esto se agregará explícitamente como características, sino más bien para decir que no hay limitaciones estrictas a este respecto.

En general, sí, vale la pena considerar qué categorías quieres como actores, pero en general esta implementación tiene un grado de flexibilidad relativamente alto, por lo que tu grado de preocupación debe ser relativo a ese contexto. He explicado un poco más sobre la naturaleza del flujo de datos en el plugin, lo que aclara aún más este punto, aquí:

¡Gracias de nuevo a todos! Es genial tener usuarios comprometidos.

5 Me gusta

Creo que estaba asociado con la eliminación de publicaciones, ya que eliminé tres publicaciones de prueba y hubo tres instancias del error.

Eso lo haría absolutamente inutilizable para mi sitio. No estoy intentando usar Discourse como una forma más difícil de escribir publicaciones en el fediverso que simplemente escribirlas en Mastodon. Forzar a toda mi comunidad a comenzar a usar anotaciones de bbcode [note]...[/note], incluidos los nuevos usuarios frecuentes del sitio que buscan ayuda, sería un fracaso.

No, definitivamente no puedo. No se trata de mí. Se trata de los usuarios de mi sitio, que son usuarios de Discourse, no de discourse/discourse-activity-pub.git.

Es solo una edición.

La federación de ediciones es normal. Según tengo entendido, la mayoría de las implementaciones de ActivityPub ampliamente utilizadas han permitido ediciones durante mucho tiempo. Mastodon fue el único que se resistió entre las implementaciones populares hasta el año pasado, cuando finalmente cedieron y permitieron las ediciones.

Reconozco que las ediciones no formaban parte del lanzamiento MVP, pero hasta que federe las ediciones o me dé la opción de desactivar que la nota no sea editable, no puedo activar esto para mi sitio. No sé si mi caso de uso es extraño o normal, por supuesto.

Mi propio objetivo al usar el complemento ActivityPub es facilitar el seguimiento y el intercambio de contenido a medida que los miembros de mi comunidad lo crean en Discourse. No es usar Discourse como un reemplazo extraño de solo publicaciones no editables para Mastodon. :smiling_face:

Entiendo que eventualmente tienen la intención de admitir la federación de ediciones, ya que el mensaje de error dice “actualmente no compatible”, ¿es correcto? En ese caso, todo esto es solo una limitación temporal y nuestras diferencias en el caso de uso no son importantes. Pero me hace preguntarme sobre invertir esfuerzo en proteger las ediciones frente a admitir la federación de ediciones.

Había olvidado eliminar el complemento retort de mi sitio de prueba cuando lo eliminé de mi sitio de producción. Eliminar retort solucionó tanto el registro de errores extraño como el mensaje de error extraño. ¡Mi error!

¿Significa esto que, tal como está el complemento hoy, podríamos usar el mismo actor para varias categorías? ¿O que el modelo de datos es muy flexible y los detalles de implementación son fáciles de cambiar?

Para que lo sepas, en mi caso de uso, mi preferencia sería publicar todo sin ninguna limitación. Sé que no es así como otros podrían configurarlo, pero creo que al final establecería el tamaño máximo igual al tamaño máximo de una publicación en mi Discourse, que es… ¡grande! :smiling_face:

2 Me gusta

Entendido, investigaré más pronto.

Entendido. Mi comentario fue más bien que editar contenido que no sea una nota es posible después de su publicación actualmente. Tienes razón en que esta primera versión no estará exenta de problemas de experiencia de usuario para el uso general por parte de cualquier usuario. Sin embargo, admite otros usos bastante bien, por ejemplo, la federación de anuncios.

Sí, agregaremos soporte para editar el contenido de las Notas después de su publicación en la fase 2. Tenga en cuenta que la edición se admite actualmente antes de que se publique la nota. Cuando construyes algo como esto, tienes que reducir la cantidad de partes móviles tanto como sea posible.

No, todavía no. ¿Podrías explicar un poco más a qué te refieres aquí? ¿Estás pensando en tener un actor para todo el sitio o estás pensando más en el problema de las subcategorías?

Sí, aunque no usaría necesariamente el término “fácil” :wink:

Tengo curiosidad por saber dónde anticipas federar el contenido sin restricciones. Pregunta genuina; quiero entender un poco más tu punto de vista.

2 Me gusta

Olvidé editar eso después de descubrir que dejar retort activado accidentalmente era la causa del error. :sonrojado:

Ups.

¡Suficiente! :rezando:

Ya no me preocuparé por esto, y en la fase 2 ayudaré a probarlo.

Lo había pensado vagamente en ambos, pero era una pregunta de bajo valor. Solo tenía curiosidad sobre hasta dónde podía llevar mi experimentación con mi sitio de staging, y no quería intentar cosas que ya se sabía que eran imposibles. :pulgar arriba:

¡Lo intentaré!

Contexto: Mastodon limita la longitud de las publicaciones que permite a los usuarios escribir, pero no la longitud de las publicaciones que muestra. Ejecuto un servidor Mastodon-glitch configurado con un límite de 2000 caracteres; he visto a varias personas publicar sobre la configuración de un límite de 31337 caracteres (porque por supuesto). Veo publicaciones largas en mi feed de personas que usan pleroma, akkoma, etc.

Tenemos contenido realmente genial que aparece en Maker Forums (mi discourse) de vez en cuando (en mi opinión, de todos modos), y me gustaría promocionarlo en la Fediverse en general para hacerlo accesible a una audiencia más amplia. Sé que Mastodon ha sido dogmático en que 500 caracteres es la longitud mágica para los microblogs, pero ActivityPub no se limita a los microblogs. Es federación, incluyendo pero no limitado a microblogs. Cuando sigo a un actor de ActivityPub en mi cuenta de Mastodon, no se limita a publicaciones cortas. Puedo leer, comentar y amplificar publicaciones más largas.

Entonces, la pregunta “¿dónde anticipas la federación?” es confusa para mí.

  • Amplificaría el contenido de mi servidor Mastodon-glitch. Las amplificaciones no aplican el límite de caracteres que se aplica a la redacción de publicaciones, incluso en Mastodon estándar.
  • Esperaría que los miembros de la comunidad sigan desde cualquier servidor ActivityPub (reconociendo que será más Mastodon que otros, al menos por ahora), y no todos tendrán la misma opinión dogmática sobre la longitud que debe tener una nota de ActivityPub.

En última instancia, como administrador del servidor, no tengo control sobre dónde se federará este contenido. Esta es la decisión de cada seguidor. No me queda claro por qué exceptuar o federar la publicación completa de discourse como una nota de activitypub sería el predeterminado, incluso para los seguidores en Mastodon, pero más aún en toda la Fediverse.

No estoy seguro de que esto responda a tu pregunta. Pero tampoco estoy seguro de entenderla bien. :sonrisa: Estaré encantado de profundizar en esto si quieres.

2 Me gusta

¡No te preocupes! Nos alegra que hayamos cubierto las excepciones por ahora. Avísanos si ves alguna más. @hellekin Igualmente, avísanos si ves algún otro problema o comportamiento extraño.

¡Genial! Gracias.

¡Sí! Gracias, es un contexto útil para nuestra planificación de la fase 2.

5 Me gusta

Estoy a punto de actualizar a la última versión. Algo que sería útil es poder elegir la audiencia: si la publicación será pública o solo para seguidores. Ahora es lo último, por lo que no podemos promocionarla y debemos seguir la cuenta antes de recibir notificaciones. Aprecio que, dado que sigue siendo experimental, definitivamente debería ser una opción para publicar públicamente y así poder anunciar la función de manera más amplia a los Fedizens :slight_smile:

5 Me gusta

Sí, eso es algo que tendremos en cuenta en la fase 2 :+1:

6 Me gusta

¿Tienen una hoja de ruta pública para las fases de desarrollo?

3 Me gusta

No hay una hoja de ruta pública, pero te avisaré cuando definamos los detalles. ¡Cualquier sugerencia razonable sobre lo que debería incluir es bienvenida! Ejemplos de casos de uso específicos como el de @mcdanlj siempre son útiles también.

6 Me gusta

Hice algunas propuestas en SocialHub que ya se habían hecho aquí hace algún tiempo…

2 Me gusta

Aún no había llegado al punto de notar esto en mis pruebas desde un servidor de staging, pero me gustaría reconocer que la promoción es central para mi propio caso de uso también.

6 Me gusta

Manejo de 410 Gone

Mis registros tienen muchos (URL cambiada):

[Discourse Activity Pub] GET request to https://activitypub.example/users/missing-account failed: Expected([200, 201, 202, 301, 302, 307, 308]) <=> Actual(410 Gone)

Creo que esto está relacionado con: La recuperación de objetos DEBE responder con el código de estado 410 Gone si Tombstone está en el cuerpo de la respuesta, de lo contrario responde con 404 Not Found (server:object-retrieval:deleted-object:410-status): la cuenta se ha movido a otra instancia.


También recibo algunos:



[Discourse Activity Pub] update_stored_from_json failed to save actor. AR errors: Ap has already been taken. Actor JSON: {"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1",{"manuallyApprovesFollowers":"as:manuallyApprovesFollowers","toot":"http://joinmastodon.org/ns#","featured":"@id","featuredTags":"@id","alsoKnownAs":"@id","movedTo":"@id","schema":"http://schema.org#","PropertyValue":"schema:PropertyValue","value":"schema:value","discoverable":"toot:discoverable","Device":"toot:Device","Ed25519Signature":"toot:Ed25519Signature","Ed25519Key":"toot:Ed25519Key","Curve25519Key":"toot:Curve25519Key","EncryptedMessage":"toot:EncryptedMessage","publicKeyBase64":"toot:publicKeyBase64","deviceId":"toot:deviceId","claim":"@id","fingerprintKey":"@id","identityKey":"@id","devices":"@id","messageFranking":"toot:messageFranking","messageType":"toot:messageType","cipherText":"toot:cipherText","suspended":"toot:suspended"}],"id":"https://mas.to/users/rikvipcode","type":"Person","following":"https://mas.to/users/rikvipcode/following","followers":"https://mas.to/users/rikvipcode/followers","inbox":"https://mas.to/users/rikvipcode/inbox","outbox":"https://mas.to/users/rikvipcode/outbox","featured":"https://mas.to/users/rikvipcode/collections/featured","featuredTags":"https://mas.to/users/rikvipcode/collections/tags","preferredUsername":"rikvipcode","name":"","summary":"","url":"https://mas.to/@rikvipcode","manuallyApprovesFollowers":false,"discoverable":false,"published":"2023-05-04T00:00:00Z","devices":"https://mas.to/users/rikvipcode/collections/devices","suspended":true,"publicKey":{"id":"https://mas.to/users/rikvipcode#main-key","owner":"https://mas.to/users/rikvipcode","publicKeyPem":"--...


Y

[Discourse Activity Pub] GET request to https://mastodon.social/users/ejovoni46709 failed: Expected([200, 201, 202, 301, 302, 307, 308]) <=> Actual(410 Gone)
[Discourse Activity Pub] Failed to process https://mastodon.social/users/ejovoni46709: Could not resolve actor
[Discourse Activity Pub] Failed to process https://mastodon.social/users/ejovoni46709#delete: Could not create actor
[Discourse Activity Pub] Failed to process https://mastodon.social/users/epybisezax9438#delete: Could not find object
3 Me gusta