mhfs/devise-async

Devise::Async::Backend::DelayedJob#perform failed with Net::SMTPAuthenticationError: 435 4.7.8 Error: authentication failed:

Closed this issue · 8 comments

Output is below. Using Rails 3.2.12, Devise 2.2.3, Devise-Async 0.6.0, Delayed_job_active_record 0.4.3, and Delayed_Job 3.0.5.

Note that other mailers work just fine. It is only the Devise mailers that seem to have issues.

Handler:

--- !ruby/object:Delayed::PerformableMethod
object: !ruby/object:Devise::Async::Backend::DelayedJob {}
method_name: :perform
args:

  • :reset_password_instructions
  • User
  • '1'
  • {}

Last Error:

435 4.7.8 Error: authentication failed:

/app/vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:960:in check_auth_response' /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:737:inauth_plain'
/app/vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:729:in authenticate' /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:564:indo_start'
/app/vendor/ruby-1.9.3/lib/ruby/1.9.1/net/smtp.rb:519:in start' /app/vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/network/delivery_methods/smtp.rb:144:indeliver!'
/app/vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/message.rb:2034:in do_delivery' /app/vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/message.rb:229:inblock in deliver'
/app/vendor/bundle/ruby/1.9.1/gems/actionmailer-3.2.12/lib/action_mailer/base.rb:415:in block in deliver_mail' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.12/lib/active_support/notifications.rb:123:inblock in instrument'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.12/lib/active_support/notifications/instrumenter.rb:20:in instrument' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.12/lib/active_support/notifications.rb:123:ininstrument'
/app/vendor/bundle/ruby/1.9.1/gems/actionmailer-3.2.12/lib/action_mailer/base.rb:413:in deliver_mail' /app/vendor/bundle/ruby/1.9.1/gems/mail-2.4.4/lib/mail/message.rb:229:indeliver'
/app/vendor/bundle/ruby/1.9.1/gems/devise-async-0.6.0/lib/devise/async/backend/base.rb:15:in perform' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/performable_method.rb:26:inperform'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/backend/base.rb:95:in block in invoke_job' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:in block in initialize' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:in execute' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:38:inrun_callbacks'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/backend/base.rb:92:in invoke_job' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:203:inblock (2 levels) in run'
/app/vendor/ruby-1.9.3/lib/ruby/1.9.1/timeout.rb:68:in timeout' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:203:inblock in run'
/app/vendor/ruby-1.9.3/lib/ruby/1.9.1/benchmark.rb:295:in realtime' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:202:inrun'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:259:in block in reserve_and_run_one_job' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:in block in initialize' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:in execute' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:38:inrun_callbacks'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:259:in reserve_and_run_one_job' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:187:inblock in work_off'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:186:in times' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:186:inwork_off'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:151:in block (4 levels) in start' /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/benchmark.rb:295:inrealtime'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:150:in block (3 levels) in start' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:in block in initialize' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:in execute' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:38:inrun_callbacks'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:149:in block (2 levels) in start' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:148:inloop'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:148:in block in start' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/plugins/clear_locks.rb:7:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/plugins/clear_locks.rb:7:in block (2 levels) in ' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:78:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:78:in block (2 levels) in add' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:in block in initialize' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:78:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:78:in block in add' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:incall'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:in execute' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:38:inrun_callbacks'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/worker.rb:147:in start' /app/vendor/bundle/ruby/1.9.1/gems/delayed_job-3.0.5/lib/delayed/tasks.rb:9:inblock (2 levels) in '
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/task.rb:228:in call' /app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/task.rb:228:inblock in execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/task.rb:223:in each' /app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/task.rb:223:inexecute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/task.rb:166:in block in invoke_with_call_chain' /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/monitor.rb:211:inmon_synchronize'
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/task.rb:159:in invoke_with_call_chain' /app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/task.rb:152:ininvoke'
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:143:in invoke_task' /app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:101:inblock (2 levels) in top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:101:in each' /app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:101:inblock in top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:110:in run_with_threads' /app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:95:intop_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:73:in block in run' /app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:160:instandard_exception_handling'
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:70:in run' /app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.3/bin/rake:33:in'
/app/vendor/bundle/ruby/1.9.1/bin/rake:23:in load' /app/vendor/bundle/ruby/1.9.1/bin/rake:23:in'

mhfs commented

It looks like an SMTP authentication issue and devise-async doesn't touch it at all. How are you authenticating in your other mailers? Are the delayedjob workers running the same rails environment?

Sorry-- this was an error with my mailer (I was using Mandrill SMTP). It is resolved now.

@JiangKeren Would you mind posting your solution/sharing it? Searching for this issue leads here, and if you solved it, it may help others. Thanks!

I just had to generate a new API key on Mandrill (on Heroku) and used that instead. I was upgrading my Mandrill accounts from Mandrill-Test (when it was in Beta) to Mandrill. So the old API key was invalid, hence the error.

@JiangKeren Awesome, thanks. I had been using the wrong credentials as well and fixed it by using the right ones.

I am getting the same error, I am using centos and it is configured with postfix. how can i resolve this?

mhfs commented

@iarivarasan before trying to use devise-async, make sure your emails are delivered using plain devise. Just then enable devise-async. You're probably facing a SMTP issue that has nothing to do with devise-async.

@mhfs yes, for me the problem is in SMTP details.