diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb
index 25ee8f05ba05e5bfbcd135c9046fbfdb79d96842..ec63b3524741e9335d07a667346a45bd7a659969 100644
--- a/lib/api/merge_requests.rb
+++ b/lib/api/merge_requests.rb
@@ -5,6 +5,23 @@ module Gitlab
 
     resource :projects do
 
+      helpers do
+        # If an error occurred this helper method provides an appropriate status code
+        #
+        # Parameters:
+        #   merge_request_errors (required) - The errors collection of MR
+        #
+        def handle_merge_request_error(merge_request_errors)
+          if merge_request_errors[:target_branch].any?
+            error!(merge_request_errors[:target_branch], 400)
+          elsif merge_request_errors[:source_branch].any?
+            error!(merge_request_errors[:source_branch], 400)
+          elsif merge_request_errors[:base].any?
+            error!(merge_request_errors[:base], 422)
+          end
+        end
+      end
+
       # List merge requests
       #
       # Parameters:
@@ -60,13 +77,7 @@ module Gitlab
           merge_request.reload_code
           present merge_request, with: Entities::MergeRequest
         else
-          if merge_request.errors[:target_branch].any?
-            error!(merge_request.errors[:target_branch], 400)
-          elsif merge_request.errors[:source_branch].any?
-            error!(merge_request.errors[:source_branch], 400)
-          elsif merge_request.errors[:base].any?
-            error!(merge_request.errors[:base], 422)
-          end
+          handle_merge_request_error(merge_request.errors)
           not_found!
         end
       end
@@ -95,13 +106,7 @@ module Gitlab
           merge_request.mark_as_unchecked
           present merge_request, with: Entities::MergeRequest
         else
-          if merge_request.errors[:target_branch].any?
-            error!(merge_request.errors[:target_branch], 400)
-          elsif merge_request.errors[:source_branch].any?
-            error!(merge_request.errors[:source_branch], 400)
-          elsif merge_request.errors[:base].any?
-            error!(merge_request.errors[:base], 422)
-          end
+          handle_merge_request_error(merge_request.errors)
           not_found!
         end
       end