Problem check 'missing_mailgun_api_key' error

AI-generated summary

Two users, Don and RBoy, are experiencing errors after updating to the latest version of Discourse, specifically the ‘missing_mailgun_api_key’ error. Don suspects the issue is related to a recent commit and his SMTP settings address being smtp.eu.mailgun.org instead of smtp.mailgun.org. RBoy also reports seeing the error in the logs, despite not using the Mailgun API. ted thanks the users for reporting the issue and mentions that a fix is available in a pending pull request, which should resolve the error once merged.

Hello :wave:

I’ve just updated today to the latest version and got some of the following errors in /logs.

TypeError (String does not have #dig method) app/services/problem_check/missing_mailgun_api_key.rb:8:in `dig' app/services/problem_check/missing_mailgun_api_key.rb:8:in `call' app/models/problem_check
info
TypeError (String does not have #dig method)
app/services/problem_check/missing_mailgun_api_key.rb:8:in `dig'
app/services/problem_check/missing_mailgun_api_key.rb:8:in `call'
app/models/problem_check.rb:58:in `call'
app/models/admin_dashboard_data.rb:36:in `block in problems'
app/models/admin_dashboard_data.rb:36:in `each'
app/models/admin_dashboard_data.rb:36:in `flat_map'
app/models/admin_dashboard_data.rb:36:in `problems'
app/models/admin_dashboard_data.rb:147:in `fetch_problems'
app/controllers/admin/dashboard_controller.rb:29:in `problems'
app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
app/controllers/application_controller.rb:423:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:393:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:236:in `call'
backtrace
app/services/problem_check/missing_mailgun_api_key.rb:8:in `dig'

app/services/problem_check/missing_mailgun_api_key.rb:8:in `call'

app/models/problem_check.rb:58:in `call'

app/models/admin_dashboard_data.rb:36:in `block in problems'

app/models/admin_dashboard_data.rb:36:in `each'

app/models/admin_dashboard_data.rb:36:in `flat_map'

app/models/admin_dashboard_data.rb:36:in `problems'

app/models/admin_dashboard_data.rb:147:in `fetch_problems'

app/controllers/admin/dashboard_controller.rb:29:in `problems'

actionpack (7.0.8.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (7.0.8.1) lib/abstract_controller/base.rb:215:in `process_action'

actionpack (7.0.8.1) lib/action_controller/metal/rendering.rb:165:in `process_action'

actionpack (7.0.8.1) lib/abstract_controller/callbacks.rb:234:in `block in process_action'

activesupport (7.0.8.1) lib/active_support/callbacks.rb:118:in `block in run_callbacks'

app/controllers/application_controller.rb:423:in `block in with_resolved_locale'

i18n (1.14.4) lib/i18n.rb:322:in `with_locale'

app/controllers/application_controller.rb:423:in `with_resolved_locale'

activesupport (7.0.8.1) lib/active_support/callbacks.rb:127:in `block in run_callbacks'

activesupport (7.0.8.1) lib/active_support/callbacks.rb:138:in `run_callbacks'

actionpack (7.0.8.1) lib/abstract_controller/callbacks.rb:233:in `process_action'

actionpack (7.0.8.1) lib/action_controller/metal/rescue.rb:23:in `process_action'

actionpack (7.0.8.1) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'

activesupport (7.0.8.1) lib/active_support/notifications.rb:206:in `block in instrument'

activesupport (7.0.8.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport (7.0.8.1) lib/active_support/notifications.rb:206:in `instrument'

actionpack (7.0.8.1) lib/action_controller/metal/instrumentation.rb:66:in `process_action'

actionpack (7.0.8.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'

activerecord (7.0.8.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack (7.0.8.1) lib/abstract_controller/base.rb:151:in `process'

actionview (7.0.8.1) lib/action_view/rendering.rb:39:in `process'

rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:115:in `block in profile_method'

actionpack (7.0.8.1) lib/action_controller/metal.rb:188:in `dispatch'

actionpack (7.0.8.1) lib/action_controller/metal.rb:251:in `dispatch'

actionpack (7.0.8.1) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'

actionpack (7.0.8.1) lib/action_dispatch/routing/route_set.rb:32:in `serve'

actionpack (7.0.8.1) lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'

actionpack (7.0.8.1) lib/action_dispatch/routing/mapper.rb:48:in `serve'

actionpack (7.0.8.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack (7.0.8.1) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (7.0.8.1) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (7.0.8.1) lib/action_dispatch/routing/route_set.rb:852:in `call'

lib/middleware/omniauth_bypass_middleware.rb:64:in `call'

rack (2.2.8.1) lib/rack/tempfile_reaper.rb:15:in `call'

rack (2.2.8.1) lib/rack/conditional_get.rb:27:in `call'

rack (2.2.8.1) lib/rack/head.rb:12:in `call'

actionpack (7.0.8.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'

lib/content_security_policy/middleware.rb:12:in `call'

lib/middleware/anonymous_cache.rb:393:in `call'

lib/middleware/csp_script_nonce_injector.rb:12:in `call'

config/initializers/008-rack-cors.rb:26:in `call'

rack (2.2.8.1) lib/rack/session/abstract/id.rb:266:in `context'

rack (2.2.8.1) lib/rack/session/abstract/id.rb:260:in `call'

actionpack (7.0.8.1) lib/action_dispatch/middleware/cookies.rb:704:in `call'

actionpack (7.0.8.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport (7.0.8.1) lib/active_support/callbacks.rb:99:in `run_callbacks'

actionpack (7.0.8.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack (7.0.8.1) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'

actionpack (7.0.8.1) lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'

logster (2.19.1) lib/logster/middleware/reporter.rb:40:in `call'

railties (7.0.8.1) lib/rails/rack/logger.rb:40:in `call_app'

railties (7.0.8.1) lib/rails/rack/logger.rb:27:in `call'

config/initializers/100-quiet_logger.rb:20:in `call'

config/initializers/100-silence_logger.rb:29:in `call'

actionpack (7.0.8.1) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'

actionpack (7.0.8.1) lib/action_dispatch/middleware/request_id.rb:26:in `call'

lib/middleware/enforce_hostname.rb:24:in `call'

rack (2.2.8.1) lib/rack/method_override.rb:24:in `call'

actionpack (7.0.8.1) lib/action_dispatch/middleware/executor.rb:14:in `call'

rack (2.2.8.1) lib/rack/sendfile.rb:110:in `call'

actionpack (7.0.8.1) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'

rack-mini-profiler (3.3.1) lib/mini_profiler.rb:334:in `call'

message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'

lib/middleware/request_tracker.rb:236:in `call'

railties (7.0.8.1) lib/rails/engine.rb:530:in `call'

railties (7.0.8.1) lib/rails/railtie.rb:226:in `public_send'

railties (7.0.8.1) lib/rails/railtie.rb:226:in `method_missing'

rack (2.2.8.1) lib/rack/urlmap.rb:74:in `block in call'

rack (2.2.8.1) lib/rack/urlmap.rb:58:in `each'

rack (2.2.8.1) lib/rack/urlmap.rb:58:in `call'

unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'

unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'

unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'

unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'

unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'

vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'

vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

I think this commit is related with this.
https://github.com/discourse/discourse/commit/ea5c3a3bdc529db59be54c27588e41c7951ea269

If I understand it correctly here

There is no problem if the smtp_settings address is smtp.mailgun.org. My address is smtp.eu.mailgun.org. Maybe this is why I got the errors… :thinking:

Thanks :slightly_smiling_face:

7 Likes

After upgrading to 3.3.0 beta 1 I’m seeing these errors in the error logs

Message (4 copies reported)

TypeError (String does not have #dig method)
app/services/problem_check/missing_mailgun_api_key.rb:8:in `dig'
app/services/problem_check/missing_mailgun_api_key.rb:8:in `call'
app/models/problem_check.rb:58:in `call'
app/models/admin_dashboard_data.rb:36:in `block in problems'
app/models/admin_dashboard_data.rb:36:in `each'
app/models/admin_dashboard_data.rb:36:in `flat_map'
app/models/admin_dashboard_data.rb:36:in `problems'
app/models/admin_dashboard_data.rb:147:in `fetch_problems'
app/controllers/admin/dashboard_controller.rb:29:in `problems'
app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
app/controllers/application_controller.rb:423:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:393:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:236:in `call'

Backtrace

app/services/problem_check/missing_mailgun_api_key.rb:8:in `dig'
app/services/problem_check/missing_mailgun_api_key.rb:8:in `call'
app/models/problem_check.rb:58:in `call'
app/models/admin_dashboard_data.rb:36:in `block in problems'
app/models/admin_dashboard_data.rb:36:in `each'
app/models/admin_dashboard_data.rb:36:in `flat_map'
app/models/admin_dashboard_data.rb:36:in `problems'
app/models/admin_dashboard_data.rb:147:in `fetch_problems'
app/controllers/admin/dashboard_controller.rb:29:in `problems'
actionpack (7.0.8.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

Env

HTTP HOSTS: xxx.com

No settings have changed, not using mailgun api (don’t have it configured).

3 Likes

Thanks for the report, @Don and @RBoy! :pray:

The fix is here. Once merged the error should go away.

https://github.com/discourse/discourse/pull/26206

8 Likes

This topic was automatically closed after 18 hours. New replies are no longer allowed.