Se están creando actores de ActivityPub locales sin pares de claves

No puedo averiguar cómo hacer que ninguna publicación se federé a Mastodon, puedo seguir a los actores sin problemas. Recibo estos errores en los registros cuando Discourse intenta entregar una publicación:

[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/a93549c3c7883784eda700f30de0c96b failed to deliver to https://mstdn.party/users/staff/inbox --- !ruby/hash:ActiveSupport::HashWithIn
[Discourse Activity Pub] POST request to https://mastodon.neat.computer/users/jonah/inbox failed: Expected([200, 201, 202]) <=> Actual(401 Unauthorized)
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce failed to deliver to https://mastodon.neat.computer/users/jonah/inbox --- !ruby/hash:ActiveSupport:
[Discourse Activity Pub] POST request to https://mstdn.party/users/staff/inbox failed: Expected([200, 201, 202]) <=> Actual(401 Unauthorized)

Desactivé Activity pub require signed requests y habilité el registro en la configuración, de lo contrario, todas las configuraciones siguen siendo sus valores predeterminados. Estas instancias de Mastodon están detrás de Cloudflare, pero puedo ver que Cloudflare no está bloqueando las solicitudes, y los registros del servicio mastodon-web muestran que Mastodon mismo está devolviendo los códigos 401 (aunque no sé cómo aumentar la verbosidad de los registros de Mastodon para ver por qué es así).

¿Hay alguna razón para que esto suceda?

Editar: A Mastodon no le gustan las firmas HTTP, aunque esta instancia no tiene Authorized Fetch habilitado:

Mar 08 16:47:07 neat-mastodon bundle[3119591]: D, [2025-03-08T16:47:07.963455 #3119591] DEBUG -- : [e6b2bc50-09e1-464e-a937-4c43ef32bd99] Signature verification failed: Request not signed
Mar 08 16:47:07 neat-mastodon bundle[3119591]: I, [2025-03-08T16:47:07.964520 #3119591]  INFO -- : [e6b2bc50-09e1-464e-a937-4c43ef32bd99] method=POST path=/users/jonah/inbox format=html controller=ActivityPub::InboxesController action=create status=401 allocations=1256 duration=9.15 view=0.69 db=1.86

Editar 2: Parece que la bandeja de entrada de mis usuarios de Discourse es inaccesible: https://verify.funfedi.dev/?actor_uri=jonah%40discuss.privacyguides.net

    "Resolving acct:jonah@discuss.privacyguides.net using webfinger",
    "Resolved to https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce",
    "Running verification for alice",
    "Got inbox None", [...]

Funciona como se esperaba para el actor del grupo: https://verify.funfedi.dev/?actor_uri=articles%40discuss.privacyguides.net :thinking:

Editar 3: para una solicitud GET a https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce

{
    "id": "https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce",
    "type": "Person",
    "updated": "2025-03-08T06:34:19Z",
    "url": "https://discuss.privacyguides.net/u/jonah",
    "name": "Jonah Aragon",
    "inbox": null,
    "outbox": null,
    "sharedInbox": "https://discuss.privacyguides.net/ap/users/inbox",
    "followers": "https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce/followers",
    "preferredUsername": "jonah",
    "icon": {
        "type": "Image",
        "mediaType": "image/png",
        "url": "https://forum-cdn.privacyguides.net/user_avatar/discuss.privacyguides.net/jonah/96/8151_2.png"
    },
    "@context": "https://www.w3.org/ns/activitystreams"
}

Hola @JonahAragon1, veamos si podemos resolverlo.

¿Desactivaste esto antes o después de probar? Si fue antes, intenta activarlo.

En términos más generales, he estado queriendo agregar un mejor registro de mensajes de respuesta de error para facilitar el diagnóstico de diferentes casos. Para ello, he propuesto un PR

Si pudieras intentarlo de nuevo cuando eso se fusione y compartir los mismos registros.

1 me gusta

Ya tengo esta configuración habilitada de nuevo, ya que identifiqué el problema como la no creación de las bandejas de entrada de los usuarios. Ahora actualizaré el plugin :+1:

Los actores de personas en el discurso Los usuarios no están pensados para tener bandejas de entrada individuales actualmente. Mastodon usa y entiende la sharedInbox. Está sucediendo algo más.

Además de registrar, todas las configuraciones vuelven a sus valores predeterminados:

[Discourse Activity Pub] POST request to https://mastodon.neat.computer/users/jonah/inbox failed: {"error":"Request not signed"}
backtrace
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'

activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'

activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `each'

activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'

activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `warn'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:26:in `log'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:63:in `warn'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/request.rb:66:in `rescue in perform'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/request.rb:48:in `perform'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/request.rb:44:in `post_json_ld'

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

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

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

rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'

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

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

sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job'

sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process'

sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse'

sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'

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

sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'

sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'

sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call'

sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'

sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'

sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track'

sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call'

sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'

sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke'

sidekiq-7.3.9/lib/sidekiq/processor.rb:184:in `block (3 levels) in process'

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

sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local'

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

sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in <class:Config>'

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

sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats'

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

sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call'

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

sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global'

sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch'

sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare'

sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch'

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

sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt'

sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process'

sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt'

sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process'

sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one'

sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run'

sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog'

sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread'

Oye, parece que el problema que tiene Mastodon es que la solicitud no está firmada.

¿Estás seguro de que esa entrada de registro se creó después de que volvieras a habilitar Activity pub require signed requests?

Sí, eso es correcto.

Lamento insistir, sin embargo, Mastodon devuelve ese error cuando no hay ninguna firma en los encabezados de la solicitud, por lo que parece poco probable que Activity pub require signed requests estuviera habilitado cuando se envió la solicitud. ¿Podrías activar una solicitud POST completamente nueva?

Ah, creo que el problema es que Cloudflare está eliminando las cabeceras de la solicitud.

1 me gusta

Sí, este es el error con la configuración predeterminada y esa opción habilitada.

[Discourse Activity Pub] POST request to https://mstdn.party/users/staff/inbox failed: {"error":"Request not signed"}
10:40 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce failed to deliver to https://mstdn.party/users/staff/inbox --- !ruby/hash:ActiveSupport::HashWithIn
10:40 am
[Discourse Activity Pub] POST request to https://mastodon.neat.computer/users/jonah/inbox failed: {"error":"Request not signed"}
10:40 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce failed to deliver to https://mastodon.neat.computer/users/jonah/inbox --- !ruby/hash:ActiveSupport::
10:40 am
[Discourse Activity Pub] POST request to https://social.lol/users/jonah/inbox failed: {"error":"Request not signed"}
10:40 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce failed to deliver to https://social.lol/users/jonah/inbox --- !ruby/hash:ActiveSupport::HashWithInd

(Notaré que social.lol no está detrás de Cloudflare, ni tampoco el foro)

Editar: si quieres seguir @videos@discuss.privacyguides.net desde una cuenta de Mastodon que sepas que funciona, házmelo saber y puedo reenviar una publicación del foro.

Ok, por favor crea una nueva publicación con ese actor.

¿Recibiste las publicaciones correctamente? Parece que sí.

 2
[Discourse Activity Pub] La solicitud POST a https://angus.ngrok.io/ap/actor/0eafb34c67153d61db44234de294a98d/inbox falló: {"errors":["Request not signed"]}
10:56 am
2
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://angus.ngrok.io/ap/actor/0eafb34c67153d61db44234de294a98d/inbox --- !ru
10:56 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/705b7513d0446e001d7f750115e6395f se entregó correctamente a https://mstdn.party/users/staff/inbox --- !ruby/hash:ActiveSupport::HashW
11:00 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/705b7513d0446e001d7f750115e6395f se entregó correctamente a https://social.lol/users/jonah/inbox --- !ruby/hash:ActiveSupport::HashWi
11:00 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/705b7513d0446e001d7f750115e6395f se entregó correctamente a https://mastodon.neat.computer/users/jonah/inbox --- !ruby/hash:ActiveSup
11:00 am
3
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://mstdn.party/users/staff/inbox --- !ruby/hash:ActiveSupport::HashWithIn
11:01 am
3
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://social.lol/users/jonah/inbox --- !ruby/hash:ActiveSupport::HashWithInd
11:01 am
3
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://mastodon.neat.computer/users/jonah/inbox --- !ruby/hash:ActiveSupport:
11:01 am
2
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://mstdn.party/users/staff/inbox --- !ruby/hash:ActiveSupport::HashWithIn
11:01 am
2
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://mastodon.neat.computer/users/jonah/inbox --- !ruby/hash:ActiveSupport:
11:01 am
2
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://social.lol/users/jonah/inbox --- !ruby/hash:ActiveSupport::HashWithInd
11:01 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce se entregó correctamente a https://angus.ngrok.io/ap/actor/0eafb34c67153d61db44234de294a98d/inbox --
11:01 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce se entregó correctamente a https://angus.ngrok.io/ap/actor/0eafb34c67153d61db44234de294a98d/inbox --
11:01 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/705b7513d0446e001d7f750115e6395f se entregó correctamente a https://angus.ngrok.io/ap/actor/0eafb34c67153d61db44234de294a98d/inbox --
11:01 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/a93549c3c7883784eda700f30de0c96b se entregó correctamente a https://angus.ngrok.io/ap/actor/0eafb34c67153d61db44234de294a98d/inbox --
11:02 am
2
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/a93549c3c7883784eda700f30de0c96b no se pudo entregar a https://mstdn.party/users/staff/inbox --- !ruby/hash:ActiveSupport::HashWithIn
11:02 am
2
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/a93549c3c7883784eda700f30de0c96b no se pudo entregar a https://mastodon.neat.computer/users/jonah/inbox --- !ruby/hash:ActiveSupport:
11:02 am
2
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/a93549c3c7883784eda700f30de0c96b no se pudo entregar a https://social.lol/users/jonah/inbox --- !ruby/hash:ActiveSupport::HashWithInd
11:02 am
15
[Discourse Activity Pub] La solicitud POST a https://mastodon.neat.computer/users/jonah/inbox falló: {"error":"Request not signed"}
11:02 am
12
[Discourse Activity Pub] La solicitud POST a https://social.lol/users/jonah/inbox falló: {"error":"Request not signed"}
11:02 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://mastodon.neat.computer/users/jonah/inbox --- !ruby/hash:ActiveSupport:
11:02 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://social.lol/users/jonah/inbox --- !ruby/hash:ActiveSupport::HashWithInd
11:02 am
[Discourse Activity Pub] La solicitud POST a https://angus.ngrok.io/ap/actor/0eafb34c67153d61db44234de294a98d/inbox falló: El endpoint angus.ngrok.io está desconectado. ERR_NGROK_3200
11:02 am
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://angus.ngrok.io/ap/actor/0eafb34c67153d61db44234de294a98d/inbox --- !ru
11:02 am
16
[Discourse Activity Pub] La solicitud POST a https://mstdn.party/users/staff/inbox falló: {"error":"Request not signed"}
11:02 am
2
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce no se pudo entregar a https://mstdn.party/users/staff/inbox --- !ruby/hash:ActiveSupport::HashWithIn
11:02 am 

Tenga en cuenta que @JonahAragon1 y yo discutimos esto por chat y el problema es que los Actores de Usuario locales se están creando de alguna manera sin pares de claves.

@JonahAragon1 Probaré algunas cosas y me pondré en contacto con usted.

1 me gusta

Hola @JonahAragon1,

¿Hay alguna diferencia entre estos usuarios en tu foro, algo que se te ocurra?

Se crearon claves para los actores de Shampoo y Bhaelros, pero no para basenote y jonah. ¿Hay alguna diferencia común entre esos dos grupos de usuarios en tu sitio?

Hm, no. No puedo pensar en ninguna razón para esto. Mientras que jonah es un administrador, los demás son usuarios normales.

varios.

Bhaelros y basenote son ambos Usuarios de Nivel de Confianza 3, así que deberían ser iguales.

Es extraño que Shampoo también tenga generados bandeja de entrada/salida mientras que basenote y jonah no, ¿entonces ni ensure_keys ni ensure_inbox_and_outbox están funcionando?:

GET https://discuss.privacyguides.net/ap/actor/310a0986b6bf613b61ca5e85a8521ecb

{
    "id": "https://discuss.privacyguides.net/ap/actor/310a0986b6bf613b61ca5e85a8521ecb",
    "type": "Person",
    "updated": "2025-03-11T17:58:08Z",
    "url": "https://discuss.privacyguides.net/u/Shampoo",
    "inbox": "https://discuss.privacyguides.net/ap/actor/310a0986b6bf613b61ca5e85a8521ecb/inbox",
    "outbox": "https://discuss.privacyguides.net/ap/actor/310a0986b6bf613b61ca5e85a8521ecb/outbox",
    "sharedInbox": "https://discuss.privacyguides.net/ap/users/inbox",
    "followers": "https://discuss.privacyguides.net/ap/actor/310a0986b6bf613b61ca5e85a8521ecb/followers",
    "preferredUsername": "Shampoo",
    "publicKey": {
        "id": "https://discuss.privacyguides.net/ap/actor/310a0986b6bf613b61ca5e85a8521ecb#main-key",
        "owner": "https://discuss.privacyguides.net/ap/actor/310a0986b6bf613b61ca5e85a8521ecb",
        "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAleqeCRZW1utTN/L5GjkY\n+2Baron4FnSKRMKW70IWfqI4rs8dfh2xhKW5qXxaBPhXf13FAOJvQvFhQ90eqRrn\nKkuMsntZN0dfpDUZ3E0iIp8fuUEVk2PmquLziiy9+zu8n5ak65lJKDYnKVtFth5G\nFJyUt6GYicY8UlUh6dPxafJ/gw6YTlvT3hO0X0H0L+hYwqHJpppl6niSDi6WQzME\nWM1hyBpv2Y2NspEexrkSVh+SIR3nJ8J1R+o+2bLJ4Hl34nYhtNyTy9AOddoQYDMw\nICZAkCLQDweid50fGakWmRB5EXfL6s2EdzEh8MOE7cyCOXgFrxTJYUTwg5TiLEQY\npQIDAQAB\n-----END PUBLIC KEY-----\n"
    },
    "icon": {
        "type": "Image",
        "mediaType": "image/png",
        "url": "https://forum-cdn.privacyguides.net/user_avatar/discuss.privacyguides.net/shampoo/96/4073_2.png"
    },
    "@context": "https://www.w3.org/ns/activitystreams"
}

GET https://discuss.privacyguides.net/ap/actor/a93549c3c7883784eda700f30de0c96b

{
    "id": "https://discuss.privacyguides.net/ap/actor/a93549c3c7883784eda700f30de0c96b",
    "type": "Person",
    "updated": "2025-03-08T06:34:19Z",
    "url": "https://discuss.privacyguides.net/u/basenote",
    "inbox": null,
    "outbox": null,
    "sharedInbox": "https://discuss.privacyguides.net/ap/users/inbox",
    "followers": "https://discuss.privacyguides.net/ap/actor/a93549c3c7883784eda700f30de0c96b/followers",
    "preferredUsername": "basenote",
    "icon": {
        "type": "Image",
        "mediaType": "image/png",
        "url": "https://forum-cdn.privacyguides.net/user_avatar/discuss.privacyguides.net/basenote/96/15_2.png"
    },
    "@context": "https://www.w3.org/ns/activitystreams"
}

Todavía no estoy seguro de cómo estos actores terminaron en este estado. Es específico de su sitio. En general, la creación de claves de actor y de bandeja de entrada/salida funciona como se esperaba. Sin embargo, esta actualización debería garantizar que dicha situación se resuelva según sea necesario:

1 me gusta

@JonahAragon1 El PR se ha fusionado. ¿Podrías intentar actualizar y decirme cómo te va?

1 me gusta

Este problema específico parece haberse solucionado, aunque todavía sigo teniendo problemas generales para que las publicaciones se muestren en Mastodon.

¿Podría compartir más detalles?

Sí, responderé o haré una nueva publicación más adelante esta semana, estoy fuera en este momento.

Los principales problemas que estoy viendo son que las publicaciones no aparecen como impulsos del actor de la categoría (a veces las encuentro en Mastodon buscando manualmente el actor del usuario), y que las publicaciones del foro simplemente no se publican en AP en primer lugar. También tengo problemas para seguir nuevos actores de categorías ahora, lo cual no era un problema antes. Si miro aquí dice que no se encontraron resultados en seguidores.

He notado que muchas publicaciones aquí en Meta en categorías habilitadas para AP aparecen con indicadores de que no se publican en AP (como esta publicación), así que tal vez simplemente no entiendo cómo se supone que esto debe funcionar…

No estoy recibiendo errores obvios en los registros para nada de esto, pensarías que todo está funcionando bien basándose en las notificaciones de registro exitosas. Son cosas que tendré que investigar más cuando tenga más tiempo.