Reply-by-Email estava funcionando, agora quebrado

Nosso recurso de Resposta por E-mail funcionou por dois anos e parou de funcionar há 17 dias, sem motivo aparente. Pesquisei nos logs de ações da equipe para esse período e não houve alterações de configuração relevantes, nenhuma atualização e nenhum novo plugin. O que poderia ter quebrado?


Nenhum e-mail recebido após 30 de setembro:


Eles também não estão sendo rejeitados:


Nada obviamente relacionado nos logs de erro, mas há este:

aws-sdk-core-3.112.1/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'

aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'

aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/dualstack.rb:36:in `call'

aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/accelerate.rb:50:in `call'

aws-sdk-core-3.112.1/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:22:in `call'

aws-sdk-core-3.112.1/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'

aws-sdk-core-3.112.1/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'

aws-sdk-core-3.112.1/lib/seahorse/client/plugins/request_callback.rb:71:in `call'

aws-sdk-core-3.112.1/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'

aws-sdk-core-3.112.1/lib/seahorse/client/plugins/response_target.rb:24:in `call'

aws-sdk-core-3.112.1/lib/seahorse/client/request.rb:72:in `send_request'

aws-sdk-s3-1.96.1/lib/aws-sdk-s3/client.rb:1274:in `copy_object'

/var/www/discourse/lib/backup_restore/s3_backup_store.rb:61:in `block in vacate_legacy_prefix'

/var/www/discourse/lib/backup_restore/s3_backup_store.rb:60:in `each'

/var/www/discourse/lib/backup_restore/s3_backup_store.rb:60:in `vacate_legacy_prefix'

/var/www/discourse/app/jobs/onceoff/vacate_legacy_prefix_backups.rb:7:in `execute_onceoff'

/var/www/discourse/app/jobs/onceoff/onceoff.rb:25:in `execute'

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

rails_multisite-3.1.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'

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

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

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

sidekiq-6.2.2/lib/sidekiq/processor.rb:196:in `execute_job'

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

sidekiq-6.2.2/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'

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

sidekiq-6.2.2/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'

sidekiq-6.2.2/lib/sidekiq/middleware/chain.rb:143:in `invoke'

sidekiq-6.2.2/lib/sidekiq/processor.rb:163:in `block in process'

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

sidekiq-6.2.2/lib/sidekiq/job_retry.rb:112:in `local'

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

sidekiq-6.2.2/lib/sidekiq.rb:38:in `block in <module:Sidekiq>'

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

sidekiq-6.2.2/lib/sidekiq/processor.rb:257:in `stats'

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

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

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

sidekiq-6.2.2/lib/sidekiq/job_retry.rb:79:in `global'

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

sidekiq-6.2.2/lib/sidekiq/logger.rb:11:in `with'

sidekiq-6.2.2/lib/sidekiq/job_logger.rb:33:in `prepare'

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

sidekiq-6.2.2/lib/sidekiq/processor.rb:162:in `process'

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

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

sidekiq-6.2.2/lib/sidekiq/util.rb:43:in `watchdog'

sidekiq-6.2.2/lib/sidekiq/util.rb:52:in `block in safe_thread'

Usando polling manual, não polling POP3:

image


Remetentes tentando responder por e-mail não recebem nenhuma notificação de rejeição ou mensagem de erro.

O envio de e-mails a partir do fórum funciona perfeitamente. Nada de errado no AWS SES (embora eu não ache que isso tenha a ver com a resposta por e-mail).

Nada de errado no discourse-doctor (exceto que ele aponta plugins não oficiais, mas esses não mudaram neste período).

Isso pode ser apenas uma coincidência (e parte de mim acha que é), mas…

É um grupo bastante abastado – duvido que haja muitos dispositivos antigos em uso.

Eu estava pensando que se trata mais de um problema no lado do servidor, e não no lado do cliente.

Acho que você precisa reconstruir seu container NFL de e-mail.

Tenho medo de que precise de mais explicações — não há nenhuma outra menção em todo o meta sobre NFL (exceto times de futebol). NFS? Não há containers assim em /var/discourse/containers.

Desculpe. Correção automática.

Reconstrua seu container de e-mail.

cd /var/discourse 
./launcher rebuild mail-receiver 

Obrigado @pfaffman, isso resolveu. Parece que você já viu isso antes — há algo que deveria ter sido feito de forma melhor? No nosso caso, as consequências foram além de apenas não receber os e-mails dos usuários:

O VERP depende de e-mails recebidos. Portanto, não estávamos tratando os retornos e reclamações por alguns dias, nossa reputação com o SES despencou e eles suspenderam nossos e-mails de saída.

É uma consequência de DST Root CA X3 Expiration (September 2021) - Let's Encrypt. Isso pegou algumas pessoas de surpresa e os problemas que causou para administradores de Discourse auto-hospedados são sutis o suficiente para terem passado despercebidos. E ainda há questões que precisam ser resolvidas.

Suspeito que o tratamento deles tenha sido interrompido em 1º de outubro.

Nunca consegui descobrir como fazer o SES funcionar. Uma solução emergencial temporária seria configurar o envio de e-mails com o Mailgun.