E-mail respinte da Amazon SES/SNS non funzionanti

Ero a conoscenza del fatto che Discourse offra un endpoint per gestire le notifiche SNS da Amazon SES. L’endpoint è /webhooks/aws e ho scoperto questa informazione qui:

https://meta.discourse.org/t/handling-bouncing-e-mails/45343/177?u=wlandgraf

Tutto funziona “quasi” correttamente. Posso vedere che AWS sta inviando le notifiche a quell’endpoint, tramite i log di CloudWatch. Vedo anche che Discourse risponde alla notifica con un codice di stato di successo (200), dopo averlo configurato per inviare il messaggio grezzo.

Tuttavia, l’e-mail non appare nell’elenco delle e-mail “Rimbalzate” in Discourse. C’è qualcos’altro che dovrei fare? Come potrei controllare un log che mi mostri cosa l’endpoint ha effettivamente fatto dopo aver ricevuto la notifica da AWS?

Ok, sono riuscito a trovare il registro della richiesta fallita, ma sono ancora perplesso su cosa possa essere.

Encoding::UndefinedConversionError ("\xC3" da ASCII-8BIT a UTF-8)
app/jobs/base.rb:314:in `block in enqueue'
lib/mini_sql_multisite_connection.rb:68:in `after_commit'
app/jobs/base.rb:314:in `enqueue'
app/controllers/webhooks_controller.rb:117:in `aws'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:177:in `call'

Sembra che sia correlato a questo: Encoding::UndefinedConversionError from ASCII-8BIT to UTF-8 · Issue #24 · karafka/sidekiq-backend · GitHub.

Discourse sta passando direttamente a Sidekiq il JSON ricevuto da Amazon SNS, che a sua volta non riesce a gestirlo correttamente.

Mi chiedo anche perché in webhooks_controller.rb tutti i webhook chiamino direttamente process_bounce e quello di AWS sia l’unico che accoda un job per elaborarlo?