diff --git a/CHANGELOG b/CHANGELOG
index ae39506a86d7e1bc6c65a2bf5f88cd6a2dd56b28..6924eae9213e033aafcb40192a2bc6d4b2dc7689 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
 
 v 8.5.2
   - Fix sidebar overlapping content when screen width was below 1200px
+  - Fix error 500 when commenting on a commit
 
 v 8.5.1
   - Fix group projects styles
diff --git a/app/services/notes/create_service.rb b/app/services/notes/create_service.rb
index b970439b92125e92d9f52a095b922b3b34d52e52..2bb312bb252ca4096d0b9c22180bca22fcea42e5 100644
--- a/app/services/notes/create_service.rb
+++ b/app/services/notes/create_service.rb
@@ -13,6 +13,5 @@ module Notes
 
       note
     end
-
   end
 end
diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb
index dc270602ebc0e544ffaeae0b4dc7fa0917a9bd4e..4392e2d17fe0e1aef464e40cf8bf407bcf2fbd22 100644
--- a/app/services/todo_service.rb
+++ b/app/services/todo_service.rb
@@ -130,8 +130,8 @@ class TodoService
   end
 
   def handle_note(note, author)
-    # Skip system notes, like status changes and cross-references
-    return if note.system
+    # Skip system notes, notes on commit, and notes on project snippet
+    return if note.system? || ['Commit', 'Snippet'].include?(note.noteable_type)
 
     project = note.project
     target  = note.noteable
diff --git a/spec/services/todo_service_spec.rb b/spec/services/todo_service_spec.rb
index df3aa955f2467cedc1865284b40b1c7a19707dac..96420acb31dc6e473edea2106652f7d7059221d9 100644
--- a/spec/services/todo_service_spec.rb
+++ b/spec/services/todo_service_spec.rb
@@ -110,6 +110,8 @@ describe TodoService, services: true do
       let!(:first_todo) { create(:todo, :assigned, user: john_doe, project: project, target: issue, author: author) }
       let!(:second_todo) { create(:todo, :assigned, user: john_doe, project: project, target: issue, author: author) }
       let(:note) { create(:note, project: project, noteable: issue, author: john_doe, note: mentions) }
+      let(:note_on_commit) { create(:note_on_commit, project: project, author: john_doe, note: mentions) }
+      let(:note_on_project_snippet) { create(:note_on_project_snippet, project: project, author: john_doe, note: mentions) }
       let(:award_note) { create(:note, :award, project: project, noteable: issue, author: john_doe, note: 'thumbsup') }
       let(:system_note) { create(:system_note, project: project, noteable: issue) }
 
@@ -145,6 +147,14 @@ describe TodoService, services: true do
         should_not_create_todo(user: john_doe, target: issue, author: john_doe, action: Todo::MENTIONED, note: note)
         should_not_create_todo(user: stranger, target: issue, author: john_doe, action: Todo::MENTIONED, note: note)
       end
+
+      it 'does not create todo when leaving a note on commit' do
+        should_not_create_any_todo { service.new_note(note_on_commit, john_doe) }
+      end
+
+      it 'does not create todo when leaving a note on snippet' do
+        should_not_create_any_todo { service.new_note(note_on_project_snippet, john_doe) }
+      end
     end
   end