diff --git a/lib/api/milestones.rb b/lib/api/milestones.rb
index 6aca9d01b09f41aa49fe7f87868c8cb0f2ca22dd..1f7d0876120da180ddf8f59ff79670d7335e0e56 100644
--- a/lib/api/milestones.rb
+++ b/lib/api/milestones.rb
@@ -4,6 +4,20 @@ module Gitlab
     before { authenticate! }
 
     resource :projects do
+
+      helpers do
+        # If an error occurs this helper method handles error codes for a given milestone
+        #
+        # Parameters:
+        #   milestone_errors (required) - The erros collection of a milestone
+        #
+        def handle_milestone_errors(milestone_errors)
+          if milestone_errors[:title].any?
+            error!(milestone_errors[:title], 400)
+          end
+        end
+      end
+
       # Get a list of project milestones
       #
       # Parameters:
@@ -47,6 +61,7 @@ module Gitlab
         if @milestone.save
           present @milestone, with: Entities::Milestone
         else
+          handle_milestone_errors(@milestone.errors)
           not_found!
         end
       end
@@ -70,6 +85,7 @@ module Gitlab
         if @milestone.update_attributes attrs
           present @milestone, with: Entities::Milestone
         else
+          handle_milestone_errors(@milestone.errors)
           not_found!
         end
       end