diff --git a/lib/api/branches.rb b/lib/api/branches.rb
index b87f7cdbad1bcc224a9baff865c01c348a0ded82..a989394ad9101f6c1a0d27c9d35060505b55a4fe 100644
--- a/lib/api/branches.rb
+++ b/lib/api/branches.rb
@@ -130,7 +130,7 @@ class Branches < Grape::API
 
         commit = user_project.repository.commit(branch.dereferenced_target)
 
-        destroy_conditionally!(commit, last_update_field: :authored_date) do
+        destroy_conditionally!(commit, last_updated: commit.authored_date) do
           result = DeleteBranchService.new(user_project, current_user)
                     .execute(params[:branch])
 
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index 84980864151f1cff114fbf1b1ad58049d79e057b..3d377fdb9eb438fb230c3d946ff24c55a2d9552b 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -19,8 +19,10 @@ def check_unmodified_since!(last_modified)
       end
     end
 
-    def destroy_conditionally!(resource, last_update_field: :updated_at)
-      check_unmodified_since!(resource.public_send(last_update_field))
+    def destroy_conditionally!(resource, last_updated: nil)
+      last_updated ||= resource.updated_at
+
+      check_unmodified_since!(last_updated)
 
       status 204
       if block_given?
diff --git a/lib/api/tags.rb b/lib/api/tags.rb
index 81b17935b812095852dddb16f5d250504a8ca6c5..912415e3a7fee788297d33a0c7a60eed17da0cf6 100644
--- a/lib/api/tags.rb
+++ b/lib/api/tags.rb
@@ -70,7 +70,7 @@ class Tags < Grape::API
 
         commit = user_project.repository.commit(tag.dereferenced_target)
 
-        destroy_conditionally!(commit, last_update_field: :authored_date) do
+        destroy_conditionally!(commit, last_updated: commit.authored_date) do
           result = ::Tags::DestroyService.new(user_project, current_user)
                     .execute(params[:tag_name])