canvas-lms icon indicating copy to clipboard operation
canvas-lms copied to clipboard

Outgoing Mail Not Working: getaddrinfo: Name or service not known

Open kevinroleke opened this issue 10 months ago • 0 comments

I am getting this error when Canvas attempts to send an outgoing email via SMTP.

getaddrinfo: Name or service not known

/var/canvas/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.0/lib/net/smtp.rb:663:in `initialize'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.0/lib/net/smtp.rb:663:in `open'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.0/lib/net/smtp.rb:663:in `tcp_socket'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.0/lib/net/smtp.rb:672:in `block in do_start'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:185:in `block in timeout'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/timeout-0.4.3/lib/timeout.rb:192:in `timeout'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.0/lib/net/smtp.rb:671:in `do_start'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/net-smtp-0.5.0/lib/net/smtp.rb:642:in `start'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/message.rb:2145:in `do_delivery'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/message.rb:253:in `block in deliver'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/actionmailer-7.1.3/lib/action_mailer/base.rb:600:in `block in deliver_mail'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.3/lib/active_support/notifications.rb:206:in `block in instrument'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.3/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.3/lib/active_support/notifications.rb:206:in `instrument'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/actionmailer-7.1.3/lib/action_mailer/base.rb:598:in `deliver_mail'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/message.rb:253:in `deliver'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/actionmailer-7.1.3/lib/action_mailer/message_delivery.rb:126:in `block (2 levels) in deliver_now'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.3/lib/active_support/callbacks.rb:101:in `run_callbacks'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/actionmailer-7.1.3/lib/action_mailer/message_delivery.rb:125:in `block in deliver_now'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/actionmailer-7.1.3/lib/action_mailer/rescuable.rb:21:in `handle_exceptions'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/actionmailer-7.1.3/lib/action_mailer/message_delivery.rb:124:in `deliver_now'
/var/canvas/app/models/message.rb:1057:in `deliver_via_email'
/var/canvas/app/models/message.rb:765:in `deliver'
/var/canvas/app/models/message.rb:54:in `deliver'
/var/canvas/lib/message_dispatcher.rb:27:in `perform'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/backend/base.rb:313:in `block in invoke_job'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/sentry-inst_jobs-5.10.0/lib/sentry/inst_jobs/plugin.rb:25:in `block (3 levels) in <class:Plugin>'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/sentry-ruby-5.22.1/lib/sentry/hub.rb:59:in `with_scope'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/sentry-ruby-5.22.1/lib/sentry-ruby.rb:396:in `with_scope'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/sentry-inst_jobs-5.10.0/lib/sentry/inst_jobs/plugin.rb:15:in `block (2 levels) in <class:Plugin>'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:98:in `block (2 levels) in add'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:74:in `block in initialize'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:98:in `block in add'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:79:in `execute'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:52:in `run_callbacks'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/backend/base.rb:310:in `invoke_job'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-inst-jobs-4.0.16/lib/switchman_inst_jobs/delayed/backend/base.rb:94:in `block in invoke_job'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-3.6.7/lib/switchman/shard.rb:105:in `activate'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-3.6.7/lib/switchman/shard.rb:595:in `activate'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-inst-jobs-4.0.16/lib/switchman_inst_jobs/delayed/backend/base.rb:94:in `invoke_job'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:225:in `block (2 levels) in perform'
/usr/lib/ruby/3.3.0/benchmark.rb:313:in `realtime'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:219:in `block in perform'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-statsd-4.0.2/lib/inst_jobs_statsd/stats/timing/perform.rb:24:in `block (2 levels) in enable_perform_timing'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst_statsd-3.3.0/lib/inst_statsd/statsd.rb:97:in `time'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-statsd-4.0.2/lib/inst_jobs_statsd/stats/timing.rb:10:in `report_timing'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-statsd-4.0.2/lib/inst_jobs_statsd/stats/timing/perform.rb:23:in `block in enable_perform_timing'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:98:in `block (2 levels) in add'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-statsd-4.0.2/lib/inst_jobs_statsd/stats/timing/perform.rb:15:in `block (2 levels) in enable_batching'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst_statsd-3.3.0/lib/inst_statsd/statsd.rb:103:in `batch'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-statsd-4.0.2/lib/inst_jobs_statsd/stats/timing/perform.rb:14:in `block in enable_batching'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:98:in `block (2 levels) in add'
/var/canvas/config/initializers/delayed_job.rb:153:in `block (2 levels) in <top (required)>'
/var/canvas/lib/base/temp_cache.rb:30:in `enable'
/var/canvas/config/initializers/delayed_job.rb:152:in `block in <top (required)>'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:98:in `block (2 levels) in add'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:74:in `block in initialize'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:98:in `block in add'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:98:in `block in add'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:98:in `block in add'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:79:in `execute'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:52:in `run_callbacks'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:216:in `perform'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:186:in `block (2 levels) in run'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:296:in `block in configure_for_job'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:54:in `running_job'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:292:in `configure_for_job'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:185:in `block in run'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:74:in `block in initialize'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:79:in `execute'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:52:in `run_callbacks'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:177:in `run'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-inst-jobs-4.0.16/lib/switchman_inst_jobs/delayed/worker.rb:31:in `block in run'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-3.6.7/lib/switchman/shard.rb:105:in `activate'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-3.6.7/lib/switchman/shard.rb:595:in `activate'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-inst-jobs-4.0.16/lib/switchman_inst_jobs/delayed/worker.rb:31:in `run'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:141:in `block in start'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:74:in `block in initialize'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:79:in `execute'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/lifecycle.rb:52:in `run_callbacks'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/worker.rb:140:in `start'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-inst-jobs-4.0.16/lib/switchman_inst_jobs/delayed/worker.rb:24:in `block in start'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-3.6.7/lib/switchman/shard.rb:105:in `activate'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-3.6.7/lib/switchman/shard.rb:595:in `activate'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/switchman-inst-jobs-4.0.16/lib/switchman_inst_jobs/delayed/worker.rb:24:in `start'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:113:in `block in spawn_worker'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:125:in `block in fork_with_reconnects'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:121:in `fork'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:121:in `fork_with_reconnects'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:112:in `spawn_worker'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:278:in `respawn_child'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:239:in `block in maintain_children'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:238:in `each'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:238:in `maintain_children'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:185:in `block in join'
<internal:kernel>:187:in `loop'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:184:in `join'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/pool.rb:50:in `start'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/cli.rb:112:in `start'
/var/canvas/vendor/bundle/ruby/3.3.0/gems/inst-jobs-3.1.17/lib/delayed/cli.rb:36:in `run'
/var/canvas/script/delayed_job:14:in `<main>'

Here is my outgoing mail config file:

production:
  address: "smtp.mailgun.org"
  port: "587"
  user_name: "[email protected]"
  password: "XX"
  authentication: "login" # plain, login, or cram_md5
  domain: "XX.com"
  outgoing_address: "[email protected]"
  default_name: "X X"

Yes, the credentials are valid and the server can freely reach smtp.mailgun.org. I have made sure the same exact SMTP configuration can be used from the same exact server to send mail (using a Python script).

Any ideas what is going on here or how to further debug this? I imagine somewhere along the line smtp.mailgun.org is being malformed or replaced or not picked up.

kevinroleke avatar Feb 22 '25 17:02 kevinroleke