# Erro no e-mail de resumo de pré-visualização: NoMethodError (método \`\>=\` não definido para nil:NilClass)

**URL:** https://meta.discourse.org/t/preview-digest-email-error-nomethoderror-undefined-method-for-nil-nilclass/148344
**Category:** Support
**Tags:** activity-summary
**Created:** [17 Abril , 2020 12:39 UTC](https://meta.discourse.org/t/preview-digest-email-error-nomethoderror-undefined-method-for-nil-nilclass/148344 "2020-04-17T12:39:48Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![zcuric](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zcuric/32/292837_2.png) [@zcuric](https://meta.discourse.org/u/zcuric)
#### Post date: [17 Abril , 2020 12:39 UTC](https://meta.discourse.org/t/preview-digest-email-error-nomethoderror-undefined-method-for-nil-nilclass/148344/1 "2020-04-17T12:39:48Z")

</div>

Olá, estou recebendo este erro ao visualizar o e-mail de resumo no novo Discourse:

```plaintext
NoMethodError (método `>=` não definido para nil:NilClass) /var/www/discourse/app/mailers/user_notifications.rb:227:in `digest'

```

Rastreamento de pilha

```plaintext
/var/www/discourse/app/mailers/user_notifications.rb:227:in `digest'
actionpack-6.0.1/lib/abstract_controller/base.rb:196:in `process_action'
actionpack-6.0.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport-6.0.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack-6.0.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack-6.0.1/lib/abstract_controller/base.rb:136:in `process'
actionmailer-6.0.1/lib/action_mailer/rescuable.rb:25:in `block in process'
actionmailer-6.0.1/lib/action_mailer/rescuable.rb:17:in `handle_exceptions'
actionmailer-6.0.1/lib/action_mailer/rescuable.rb:24:in `process'
actionview-6.0.1/lib/action_view/rendering.rb:39:in `process'
actionmailer-6.0.1/lib/action_mailer/base.rb:637:in `block in process'
activesupport-6.0.1/lib/active_support/notifications.rb:180:in `block in instrument'
activesupport-6.0.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-6.0.1/lib/active_support/notifications.rb:180:in `instrument'
actionmailer-6.0.1/lib/action_mailer/base.rb:636:in `process'
actionmailer-6.0.1/lib/action_mailer/message_delivery.rb:123:in `block in processed_mailer'
actionmailer-6.0.1/lib/action_mailer/message_delivery.rb:122:in `tap'
actionmailer-6.0.1/lib/action_mailer/message_delivery.rb:122:in `processed_mailer'
actionmailer-6.0.1/lib/action_mailer/message_delivery.rb:29:in ` __getobj__'
/usr/local/lib/ruby/2.6.0/delegate.rb:80:in `method_missing'
/var/www/discourse/lib/email/renderer.rb:18:in `html'
/var/www/discourse/app/controllers/admin/email_controller.rb:93:in `preview_digest'
actionpack-6.0.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-6.0.1/lib/abstract_controller/base.rb:196:in `process_action'
actionpack-6.0.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack-6.0.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport-6.0.1/lib/active_support/callbacks.rb:135:in `run_callbacks'
actionpack-6.0.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack-6.0.1/lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
activesupport-6.0.1/lib/active_support/notifications.rb:180:in `block in instrument'
activesupport-6.0.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-6.0.1/lib/active_support/notifications.rb:180:in `instrument'
actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
actionpack-6.0.1/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord-6.0.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack-6.0.1/lib/abstract_controller/base.rb:136:in `process'
actionview-6.0.1/lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler-2.0.1/lib/mini_profiler/profiling_methods.rb:78:in `block in profile_method'
actionpack-6.0.1/lib/action_controller/metal.rb:191:in `dispatch'
actionpack-6.0.1/lib/action_controller/metal.rb:252:in `dispatch'
actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:51:in `dispatch'
actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack-6.0.1/lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
actionpack-6.0.1/lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack-6.0.1/lib/action_dispatch/journey/router.rb:49:in `block in serve'
actionpack-6.0.1/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-6.0.1/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:837:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
rack-2.0.8/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.0.8/lib/rack/conditional_get.rb:25:in `call'
rack-2.0.8/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:318:in `call'
rack-2.0.8/lib/rack/session/abstract/id.rb:259:in `context'
rack-2.0.8/lib/rack/session/abstract/id.rb:253:in `call'
actionpack-6.0.1/lib/action_dispatch/middleware/cookies.rb:648:in `call'
actionpack-6.0.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport-6.0.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack-6.0.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack-6.0.1/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
actionpack-6.0.1/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
actionpack-6.0.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster-2.8.0/lib/logster/middleware/reporter.rb:43:in `call'
railties-6.0.1/lib/rails/rack/logger.rb:38:in `call_app'
railties-6.0.1/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:18:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'
actionpack-6.0.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack-6.0.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:22:in `call'
rack-2.0.8/lib/rack/method_override.rb:22:in `call'
actionpack-6.0.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
rack-2.0.8/lib/rack/sendfile.rb:111:in `call'
actionpack-6.0.1/lib/action_dispatch/middleware/host_authorization.rb:77:in `call'
rack-mini-profiler-2.0.1/lib/mini_profiler/profiler.rb:200:in `call'
message_bus-2.2.4/lib/message_bus/rack/middleware.rb:57:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:172:in `call'
railties-6.0.1/lib/rails/engine.rb:526:in `call'
railties-6.0.1/lib/rails/railtie.rb:190:in `public_send'
railties-6.0.1/lib/rails/railtie.rb:190:in `method_missing'
rack-2.0.8/lib/rack/urlmap.rb:68:in `block in call'
rack-2.0.8/lib/rack/urlmap.rb:53:in `each'
rack-2.0.8/lib/rack/urlmap.rb:53:in `call'
unicorn-5.5.4/lib/unicorn/http_server.rb:605:in `process_client'
unicorn-5.5.4/lib/unicorn/http_server.rb:700:in `worker_loop'
unicorn-5.5.4/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
unicorn-5.5.4/lib/unicorn/http_server.rb:144:in `start'
unicorn-5.5.4/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'

```

Corrigível se o usuário definir o período de tempo

```plaintext
Resumo de atividades em Preferências > E-mails > Resumo de atividades

```

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [19 Abril , 2020 17:33 UTC](https://meta.discourse.org/t/preview-digest-email-error-nomethoderror-undefined-method-for-nil-nilclass/148344/2 "2020-04-19T17:33:45Z")

</div>

Conseguimos reproduzir isso, @tshenry?

---

<div class="post-metadata">

### Author: ![tshenry](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tshenry/32/119495_2.png) [@tshenry](https://meta.discourse.org/u/tshenry)
#### Post date: [1 Maio , 2020 23:14 UTC](https://meta.discourse.org/t/preview-digest-email-error-nomethoderror-undefined-method-for-nil-nilclass/148344/4 "2020-05-01T23:14:32Z")

</div>

Tentei acionar isso com uma nova instância em nossa infraestrutura de hospedagem e um novo DO droplet, mas não consegui reproduzir.

Você pode fornecer mais detalhes, @zcuric? Uma maneira consistente de reproduzir o erro seria ótimo.

---

<div class="post-metadata">

### Author: ![zcuric](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zcuric/32/292837_2.png) [@zcuric](https://meta.discourse.org/u/zcuric)
#### Post date: [5 Maio , 2020 15:10 UTC](https://meta.discourse.org/t/preview-digest-email-error-nomethoderror-undefined-method-for-nil-nilclass/148344/5 "2020-05-05T15:10:16Z")

</div>

@tshenry

Se bem me lembro, os passos foram:

1. Nova instância
2. Importação das configurações (abaixo - algumas configurações pessoais removidas) da instância de desenvolvimento para a nova instância

```yaml
suggested_topics: '0'
post_menu: read|share|edit|bookmark|delete|flag|admin|reply
desktop_category_page_style: categories_only
fixed_category_positions: 'true'
fixed_category_positions_on_create: 'true'
enable_badges: 'false'
push_notifications_prompt: 'false'
login_required: 'true'
email_editable: 'false'
public_user_custom_fields: is_learning
enable_user_directory: 'false'
hide_user_profiles_from_public: 'true'
max_notifications_per_user: '10'
enable_group_directory: 'false'
title_prettify: 'false'
allow_uncategorized_topics: 'false'
enable_personal_messages: 'false'
enable_system_message_replies: 'false'
edit_history_visible_to_public: 'false'
max_reply_history: '4'
newuser_max_mentions_per_post: '10'
emoji_set: google
email_time_window_mins: '30'
email_accent_bg_color: F1F3F4
email_accent_fg_color: "#343F79"
email_link_color: "#343F79"
reply_by_email_enabled: 'true'
manual_polling_enabled: 'true'
pop3_polling_ssl: 'false'
pop3_polling_openssl_verify: 'false'
log_mail_processing_failures: 'true'
email_in: 'true'
email_in_min_trust: '0'
unsubscribe_via_email_footer: 'true'
theme_authorized_extensions: jpg|jpeg|png|woff|woff2|svg|eot|ttf|otf|gif|js|*
authorized_extensions: jpg|jpeg|png|gif|*
allow_uploaded_avatars: 'false'
restrict_letter_avatar_colors: 343F79
default_trust_level: '1'
allow_flagging_staff: 'false'
send_tl1_welcome_message: 'false'
trusted_users_can_edit_others: 'false'
detailed_404: 'true'
enable_flash_video_onebox: 'true'
auto_silence_fast_typers_on_first_post: 'false'
max_edits_per_day: '100'
max_topics_in_first_day: '10'
privacy_policy_url: "/t/about/6"
search_prefer_recent_posts: 'true'
new_version_emails: 'false'
educate_until_posts: '1'
disable_avatar_education_message: 'true'
show_create_topics_notice: 'false'
likes_notification_consolidation_window_mins: '1'
automatically_unpin_topics: 'false'
default_email_digest_frequency: '0'
default_email_mailing_list_mode: 'true'
default_other_like_notification_frequency: '3'
dashboard_general_tab_activity_metrics: page_view_total_reqs|visits|time_to_first_response|user_to_user_private_messages_with_replies
discourse_narrative_bot_enabled: 'false'
disable_discourse_narrative_bot_welcome_post: 'true'
discourse_narrative_bot_welcome_post_delay: '1'
allow_solved_on_all_topics: 'true

```

1. Esse erro ocorreu.

---

<div class="post-metadata">

### Author: ![tshenry](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tshenry/32/119495_2.png) [@tshenry](https://meta.discourse.org/u/tshenry)
#### Post date: [16 Maio , 2020 00:46 UTC](https://meta.discourse.org/t/preview-digest-email-error-nomethoderror-undefined-method-for-nil-nilclass/148344/6 "2020-05-16T00:46:54Z")

</div>

Bem, essa foi complicada! Consegui finalmente reproduzir o problema em uma instalação limpa e recém-feita, importando as configurações do site (parece que esse é o ponto chave). Acho que consegui isolar o problema em uma configuração específica. Aqui está a **reprodução completa** que causou o erro:

1. Siga nosso [Guia de Instalação](https://github.com/discourse/discourse/blob/master/docs/INSTALL-email.md) até chegar à etapa de criação do administrador (não crie o administrador ainda). Entre no app:

2. Execute

3. Crie um administrador pela interface, pule o assistente de configuração e vá diretamente para a prévia do resumo nas configurações do site.

4. Veja isso e as entradas associadas em `/logs`

* * *

Aqui está como corrigi manualmente a situação pelo console do Rails:

```ruby
# Obter as opções do usuário do primeiro e único usuário humano
user_op = User.find(1).user_option

# Note que está definido como nil
user_op.digest_after_minutes
=> nil

# Defina para uma opção válida. Escolhi 0
user_op.digest_after_minutes = 0
user_op.save!

```

Após isso, a prévia do resumo funcionará sem problemas.

* * *

Não tenho certeza imediata sobre qual é a correção. O seguinte me deixou desconfiado, já que há um teste de maior que 0 e nosso valor de importação é 0:

> <https://github.com/discourse/discourse/blob/869f9b20a2dc62fcaa3c596b383f80a0b6b20c84/lib/tasks/import.rake#L171-L171>

@codinghorror, você acha que esse é um caso tão extremo que devemos esperar pela regra de três? Ou você quer que eu ou outra pessoa investigue uma correção?

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [16 Maio , 2020 01:12 UTC](https://meta.discourse.org/t/preview-digest-email-error-nomethoderror-undefined-method-for-nil-nilclass/148344/7 "2020-05-16T01:12:36Z")

</div>

Provavelmente uma correção simples? Talvez @sam possa atribuir para segunda-feira?
