diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb
index 3c039b43f5dbe40ac0bfca919461578fedd3e850..56c05cb54e6a51017ed66c65e5c6fbcd12b89d69 100644
--- a/app/helpers/todos_helper.rb
+++ b/app/helpers/todos_helper.rb
@@ -14,6 +14,7 @@ module TodosHelper
     when Todo::BUILD_FAILED then 'The build failed for'
     when Todo::MARKED then 'added a todo for'
     when Todo::APPROVAL_REQUIRED then 'set you as an approver for'
+    when Todo::UNMERGEABLE then 'Could not merge'
     end
   end
 
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index b73d7acefeab26f625840789470f173cf0841a2b..22a3a5fe42e0e7270686867a879cd1458ef3fe33 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -91,6 +91,10 @@ class MergeRequest < ActiveRecord::Base
     around_transition do |merge_request, transition, block|
       Gitlab::Timeless.timeless(merge_request, &block)
     end
+
+    after_transition unchecked: :cannot_be_merged do |merge_request, transition|
+      TodoService.new.merge_request_became_unmergeable(merge_request)
+    end
   end
 
   validates :source_project, presence: true, unless: [:allow_broken, :importing?, :closed_without_fork?]
diff --git a/app/models/todo.rb b/app/models/todo.rb
index f5ade1cc293cb0175ec157e6d29826d60d606261..4c99aa0d3be56bfaeadaf054ecb6e47b8b730fb7 100644
--- a/app/models/todo.rb
+++ b/app/models/todo.rb
@@ -6,13 +6,15 @@ class Todo < ActiveRecord::Base
   BUILD_FAILED      = 3
   MARKED            = 4
   APPROVAL_REQUIRED = 5 # This is an EE-only feature
+  UNMERGEABLE       = 6
 
   ACTION_NAMES = {
     ASSIGNED => :assigned,
     MENTIONED => :mentioned,
     BUILD_FAILED => :build_failed,
     MARKED => :marked,
-    APPROVAL_REQUIRED => :approval_required
+    APPROVAL_REQUIRED => :approval_required,
+    UNMERGEABLE => :unmergeable
   }
 
   belongs_to :author, class_name: "User"
@@ -66,6 +68,10 @@ class Todo < ActiveRecord::Base
     end
   end
 
+  def unmergeable?
+    action == UNMERGEABLE
+  end
+
   def build_failed?
     action == BUILD_FAILED
   end
diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb
index d67c166275a8194dfdbce914782019431978894d..1bd6ce416abb02580717854e51d1dbee93fa7f97 100644
--- a/app/services/todo_service.rb
+++ b/app/services/todo_service.rb
@@ -123,7 +123,15 @@ class TodoService
     mark_pending_todos_as_done(merge_request, merge_request.author)
     mark_pending_todos_as_done(merge_request, merge_request.merge_user) if merge_request.merge_when_build_succeeds?
   end
-
+  
+  # When a merge request could not be automatically merged due to its unmergeable state we should:
+  #
+  #  * create a todo for a merge_user
+  #
+  def merge_request_became_unmergeable(merge_request)
+    create_unmergeable_todo(merge_request, merge_request.merge_user) if merge_request.merge_when_build_succeeds?
+  end
+  
   # When create a note we should:
   #
   #  * mark all pending todos related to the noteable for the note author as done
@@ -245,6 +253,11 @@ class TodoService
     create_todos(todo_author, attributes)
   end
 
+  def create_unmergeable_todo(merge_request, merge_user)
+    attributes = attributes_for_todo(merge_request.project, merge_request, merge_user, Todo::UNMERGEABLE)
+    create_todos(merge_user, attributes)
+  end
+
   def attributes_for_target(target)
     attributes = {
       project_id: target.project.id,
diff --git a/app/views/dashboard/todos/_todo.html.haml b/app/views/dashboard/todos/_todo.html.haml
index cc077fad32ab805af72a2839258533e9292bfd81..7fe175c1419061f3c2a39301bef429c68e4d4d6d 100644
--- a/app/views/dashboard/todos/_todo.html.haml
+++ b/app/views/dashboard/todos/_todo.html.haml
@@ -3,7 +3,7 @@
 
   .todo-item.todo-block
     .todo-title.title
-      - unless todo.build_failed?
+      - unless todo.build_failed? || todo.unmergeable?
         = todo_target_state_pill(todo)
 
         %span.author-name
diff --git a/changelogs/unreleased/23524-notify-automerge-user-of-failed-build.yml b/changelogs/unreleased/23524-notify-automerge-user-of-failed-build.yml
index 4b6f9d1efe947449209303a11a87f0a5b46547df..268be6b9b83424a30574a19e3f3a2062ee4c9da2 100644
--- a/changelogs/unreleased/23524-notify-automerge-user-of-failed-build.yml
+++ b/changelogs/unreleased/23524-notify-automerge-user-of-failed-build.yml
@@ -1,4 +1,4 @@
 ---
-title: Create a TODO for user who set auto-merge when a build fails
-merge_request: 
-author: 
+title: Create a TODO for user who set auto-merge when a build fails, merge conflict occurs
+merge_request: 8056
+author: twonegatives
diff --git a/spec/factories/todos.rb b/spec/factories/todos.rb
index 866e663f0262ea629387b692a05b94b2072ca54b..dc247e2d96dcda5d042062b3d51cff0cb1bf5866 100644
--- a/spec/factories/todos.rb
+++ b/spec/factories/todos.rb
@@ -27,6 +27,10 @@ FactoryGirl.define do
       action { Todo::APPROVAL_REQUIRED }
     end
 
+    trait :unmergeable do
+      action { Todo::UNMERGEABLE }
+    end
+
     trait :done do
       state :done
     end
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index 1b71d00eb8f97cf4a4a529e6eae011126ee20da4..59e629edf4cb8e587a2d870a3bbebdd383e12fe7 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -740,10 +740,12 @@ describe MergeRequest, models: true do
     subject { create(:merge_request, source_project: project, merge_status: :unchecked) }
 
     context 'when it is not broken and has no conflicts' do
-      it 'is marked as mergeable' do
+      before do
         allow(subject).to receive(:broken?) { false }
         allow(project.repository).to receive(:can_be_merged?).and_return(true)
+      end
 
+      it 'is marked as mergeable' do
         expect { subject.check_if_can_be_merged }.to change { subject.merge_status }.to('can_be_merged')
       end
     end
@@ -754,6 +756,12 @@ describe MergeRequest, models: true do
       it 'becomes unmergeable' do
         expect { subject.check_if_can_be_merged }.to change { subject.merge_status }.to('cannot_be_merged')
       end
+      
+      it 'creates Todo on unmergeability' do
+        expect_any_instance_of(TodoService).to receive(:merge_request_became_unmergeable).with(subject)
+
+        subject.check_if_can_be_merged
+      end
     end
 
     context 'when it has conflicts' do
diff --git a/spec/services/todo_service_spec.rb b/spec/services/todo_service_spec.rb
index d8a9ca20b360f781fc467228fce8733114861cb5..13d584a8975bf0b77c93dd8f878f558f5566ca8d 100644
--- a/spec/services/todo_service_spec.rb
+++ b/spec/services/todo_service_spec.rb
@@ -489,6 +489,15 @@ describe TodoService, services: true do
       end
     end
 
+    describe '#merge_request_became_unmergeable' do
+      it 'creates a pending todo for a merge_user' do
+        mr_unassigned.update(merge_when_build_succeeds: true, merge_user: admin)
+        service.merge_request_became_unmergeable(mr_unassigned)
+
+        should_create_todo(user: admin, author: admin, target: mr_unassigned, action: Todo::UNMERGEABLE)
+      end
+    end
+    
     describe '#mark_todo' do
       it 'creates a todo from a merge request' do
         service.mark_todo(mr_unassigned, author)