No se pueden enviar correos electrónicos de resumen: Aviso de depreciación de Jobs::UserEmail / No hay correos electrónicos después de la puesta en cola a través de Rails

No se puede enviar el resumen. Los resúmenes se están encolando pero no se envían en realidad. No veo ningún registro de correo electrónico.

  • Veo trabajos de resumen encolados en Sidekiq
  • No se envían correos electrónicos de resumen reales
  • Cada trabajo registra:
Aviso de depreciación: Jobs::UserEmail se encoló con valores de argumento que no se serializan limpiamente desde/hacia JSON. Esto significa que el trabajo se ejecutará con valores ligeramente diferentes a los proporcionados a `enqueue`. Los valores de los argumentos deben ser cadenas, booleanos, números o nulos (o arreglos/hashes de esos tipos de valores). (obsoleto desde Discourse 2.9) (eliminación en Discourse 3.0)
  • No hay problemas con los procesos SMTP o Sidekiq
  • Todos los correos electrónicos que no son resúmenes (y los correos electrónicos de prueba) se envían y entregan correctamente

Aquí está el registro de error completo
Información:

[privateinvestigator] Aviso de depreciación: Jobs::UserEmail se encoló con valores de argumento que no se serializan limpiamente desde/hacia JSON. Esto significa que el trabajo se ejecutará con valores ligeramente diferentes a los proporcionados a `enqueue`. Los valores de los argumentos deben ser cadenas, booleanos, números o nulos (o arreglos/hashes de esos tipos de valores). (obsoleto desde Discourse 2.9) (eliminación en Discourse 3.0)
En (discourse):89:in `block (3 levels) in <main>'

Backtrace

activesupport-8.0.3/lib/active_support/broadcast_logger.rb:218:in `block in dispatch'
activesupport-8.0.3/lib/active_support/broadcast_logger.rb:217:in `map'
activesupport-8.0.3/lib/active_support/broadcast_logger.rb:217:in `dispatch'
activesupport-8.0.3/lib/active_support/broadcast_logger.rb:129:in `warn'
/var/www/discourse/lib/discourse.rb:1053:in `deprecate'
/var/www/discourse/app/jobs/base.rb:407:in `enqueue'
(discourse):89:in `block (3 levels) in <main>'
activerecord-8.0.3/lib/active_record/relation/batches.rb:88:in `each'
activerecord-8.0.3/lib/active_record/relation/batches.rb:88:in `block in find_each'
activerecord-8.0.3/lib/active_record/relation/batches.rb:172:in `block in find_in_batches'
activerecord-8.0.3/lib/active_record/relation/batches.rb:461:in `block in batch_on_unloaded_relation'

<internal:kernel>:187:in `loop'
activerecord-8.0.3/lib/active_record/relation/batches.rb:434:in `batch_on_unloaded_relation'
activerecord-8.0.3/lib/active_record/relation/batches.rb:289:in `in_batches'
activerecord-8.0.3/lib/active_record/relation/batches.rb:171:in `find_in_batches'
activerecord-8.0.3/lib/active_record/relation/batches.rb:87:in `find_each'
(discourse):86:in `with_index'
(discourse):86:in `block (2 levels) in <main>'
rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:203:in `with_connection'
rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `with_connection'
(discourse):55:in `block in <main>'
(discourse):54:in `each'
(discourse):54:in `<main>'
irb-1.15.2/lib/irb/workspace.rb:101:in `eval'
irb-1.15.2/lib/irb/workspace.rb:101:in `evaluate'
irb-1.15.2/lib/irb/context.rb:591:in `evaluate_expression'
irb-1.15.2/lib/irb/context.rb:557:in `evaluate'
irb-1.15.2/lib/irb.rb:201:in `block (2 levels) in eval_input'
irb-1.15.2/lib/irb.rb:512:in `signal_status'
irb-1.15.2/lib/irb.rb:193:in `block in eval_input'
irb-1.15.2/lib/irb.rb:272:in `block in each_top_level_statement'

<internal:kernel>:187:in `loop'
irb-1.15.2/lib/irb.rb:269:in `each_top_level_statement'
irb-1.15.2/lib/irb.rb:192:in `eval_input'
irb-1.15.2/lib/irb.rb:173:in `block in run'
irb-1.15.2/lib/irb.rb:172:in `catch'
irb-1.15.2/lib/irb.rb:172:in `run'
railties-8.0.3/lib/rails/commands/console/irb_console.rb:113:in `start'
railties-8.0.3/lib/rails/commands/console/console_command.rb:59:in `start'
railties-8.0.3/lib/rails/commands/console/console_command.rb:8:in `start'
railties-8.0.3/lib/rails/commands/console/console_command.rb:87:in `perform'
thor-1.4.0/lib/thor/command.rb:28:in `run'
thor-1.4.0/lib/thor/invocation.rb:127:in `invoke_command'
railties-8.0.3/lib/rails/command/base.rb:178:in `invoke_command'
thor-1.4.0/lib/thor.rb:538:in `dispatch'
railties-8.0.3/lib/rails/command/base.rb:73:in `perform'
railties-8.0.3/lib/rails/command.rb:65:in `block in invoke'
railties-8.0.3/lib/rails/command.rb:143:in `with_argv'
railties-8.0.3/lib/rails/command.rb:63:in `invoke'
railties-8.0.3/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
script/rails:8:in `<top (required)>'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `load'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `kernel_load'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:452:in `exec'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor.rb:538:in `dispatch'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:35:in `dispatch'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:29:in `start'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/exe/bundle:28:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/exe/bundle:20:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'

¿Alguien más se ha enfrentado al mismo problema?
¿Cómo puedo solucionar esto?

1 me gusta

@emonunix parece que nadie en la comunidad pudo ayudarte a responder tu pregunta. ¡Lo sentimos! ¿Pudiste resolver tu problema?

Si no, ¿hay algo sobre tu configuración que puedas contarnos? ¿Estás en un sitio autoalojado configurado usando las instrucciones de instalación oficiales? ¿Está tu sitio actualizado?

2 Me gusta

Hola @tobiaseigen Gracias por el seguimiento.
Todavía estamos experimentando este problema en nuestra configuración.
Estamos ejecutando un entorno multisitio de Discourse y, curiosamente, algunos sitios envían resúmenes correctamente a los usuarios elegibles, mientras que otros ponen en cola trabajos de resumen pero nunca los envían .

Cuando activamos la entrega de resúmenes manualmente desde Rails, se comporta de la misma manera:

  • Los trabajos aparecen en Sidekiq → En cola,
  • Pero no se envían correos electrónicos reales,
  • Y no aparecen entradas en los registros de correo electrónico.

Todos los correos electrónicos normales (que no son resúmenes), como la activación de usuario, el restablecimiento de contraseña y los correos electrónicos de prueba, se envían perfectamente.

Ya estamos siguiendo las instrucciones oficiales de configuración de Discourse y nuestra instalación está completamente actualizada.
La máquina host ejecuta Ubuntu 20.04 LTS.

¿Podría informarnos qué detalles o registros específicos podemos compartir para ayudar a diagnosticar esto más a fondo?

1 me gusta

¿Cambiaste alguna configuración relacionada con el resumen? Como Suprimir correo electrónico de resumen después de días

1 me gusta

@moin, lo intenté aumentando y disminuyendo Suppress digest email after days
No cambió nada.

1 me gusta

¿Está esto también relacionado con Digest/Activity Summary emails not sending for users even though all conditions are met (Discourse 3.6)? Cerraré este tema y veré si tú y @Jacob_Peebles pueden obtener la ayuda que necesitan allí para resolver su problema con el envío de resúmenes. Si me equivoco, envíame un mensaje privado y reabriré este tema.

1 me gusta