Defect #33881


No email notifications for status changes triggered by fixing keywords in repository commits.

Added by Hilmar Blonn almost 4 years ago. Updated almost 3 years ago.

Email notifications
Target version:
Start date:
Due date:
% Done:


Estimated time:
Affected version:


When using fixing keywords in the git commit-messages, the references are added correctly to the issue and the status is changed to closed as intended, but no email notifications are sent out for the status change (for manual status changes the notifications are sent).

Redmine version 4.1.1.stable
Ruby version 2.6.6-p146 (2020-03-31) [x86_64-linux]
Rails version
Environment production
Database adapter Mysql2
Mailer queue ActiveJob::QueueAdapters::AsyncAdapter
Mailer delivery smtp
Subversion 1.13.0
Git 2.25.1
Redmine plugins:
redmine_agile 1.5.3
redmine_checklists 3.1.16
redmine_people 1.5.1
redmine_recurring_tasks 0.3.4
redmine_theme_changer 0.4.0
redmine_zenedit 1.0.3
redmineup_tags 2.0.8
status_button 0.1.0

Actions #1

Updated by Tobias Grimm over 3 years ago

Same here. I digged a little bit deeper:

When I manually trigger fetching the git commits by going to the repositories page, then email sending of status changes triggered by a commit works fine. If the commits are fetched by the redmine:fetch_changesets (via cron), then no email notifications are sent.

Looking at the log I see, that in both cases an ActionMailer::DeliveryJob is enqueued. I also see "Performing ActionMailer::DeliveryJob" in both cases, but only in the first case I see "Rendering mailer/issue_edit.text.erb within layouts/mailer" actually happening.

This seems to be related to the async ActiveJob, which causes the queued delivery jobs to not be executed before the fetch_changesets process ends.

My lazy solution for this was to add a sleep(10) in the fetch_changesets rake task to give the async delivery some time before the rake process ends.

This might already be fixed in a later Redmine/Rails version. I'm running the Debian-packed version from buster-baclports.

Redmine version 4.0.7.stable
Ruby version 2.5.5-p157 (2019-03-15) [x86_64-linux-gnu]
Rails version 5.2.3
Environment production
Database adapter Mysql2
Mailer queue ActiveJob::QueueAdapters::AsyncAdapter
Mailer delivery sendmail
Git 2.20.1
Redmine plugins:
no plugin installed

Actions #2

Updated by Andrew Skripnikov almost 3 years ago

Hi, Tobias!

Could you please give me more details what I need to edit to fix this issue.

Seems, it is not fixed in Redmine 4.2.1.stable

Thank you in advance

Looking forward for your reply

Actions #3

Updated by Tobias Grimm almost 3 years ago

In redmine.rake ( in the :fetch_changesets-Task add a sleep after fetching the changesets:

task :fetch_changesets => :environment do

This will give redmine the time to actually deliver the emails before the process ends.

Actions #4

Updated by Andrew Skripnikov almost 3 years ago

Thank you very much!
This hales a lot :)

Actions #5

Updated by Mischa The Evil almost 3 years ago

FYI, I think you're all using an in-memory queue which might be the issue here.

From source:/tags/4.0.7/app/models/mailer.rb#L604 and source:/tags/4.1.1/app/models/mailer.rb#L620:

   # Using the asynchronous queue from a Rake task will generally not work because
   # Rake will likely end, causing the in-process thread pool to be deleted, before
   # any/all of the .deliver_later emails are processed

FWIW: Jean-Philippe Lang wrote in Redmine 4.0.0, 3.4.7 and 3.3.9 released:

Email delivery now relies on Rails ActiveJob. Emails are sent asynchronously by default. But you should consider configuring a persistent backend for ActiveJob since the default uses an in-memory queue that is not well suited for production environnements:


Also available in: Atom PDF