diff --git a/app/assets/javascripts/issue.js b/app/assets/javascripts/issue.js
index 6c08b1b8e6170110f8a024e728d0ba099a383588..1776b3d61f64bf50b78e22103eb7b06e9115d360 100644
--- a/app/assets/javascripts/issue.js
+++ b/app/assets/javascripts/issue.js
@@ -54,16 +54,19 @@ require('vendor/task_list');
           success: function(data, textStatus, jqXHR) {
             if ('id' in data) {
               $(document).trigger('issuable:change');
+              const currentTotal = Number($('.issue_counter').text());
               if (isClose) {
                 $('a.btn-close').addClass('hidden');
                 $('a.btn-reopen').removeClass('hidden');
                 $('div.status-box-closed').removeClass('hidden');
                 $('div.status-box-open').addClass('hidden');
+                $('.issue_counter').text(currentTotal - 1);
               } else {
                 $('a.btn-reopen').addClass('hidden');
                 $('a.btn-close').removeClass('hidden');
                 $('div.status-box-closed').addClass('hidden');
                 $('div.status-box-open').removeClass('hidden');
+                $('.issue_counter').text(currentTotal + 1);
               }
             } else {
               new Flash(issueFailMessage, 'alert');
diff --git a/changelogs/unreleased/27452-update-issue-count.yml b/changelogs/unreleased/27452-update-issue-count.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a7417eba63c6b717712604b234d16b7c4ff59e32
--- /dev/null
+++ b/changelogs/unreleased/27452-update-issue-count.yml
@@ -0,0 +1,4 @@
+---
+title: update issue count when closing/reopening an issue
+merge_request:
+author:
diff --git a/spec/javascripts/issue_spec.js b/spec/javascripts/issue_spec.js
index 5b0b7aa7903d633d4c967766e66023553c469a6d..beb544468ef396eb3a02faa17618b0740c80fc44 100644
--- a/spec/javascripts/issue_spec.js
+++ b/spec/javascripts/issue_spec.js
@@ -105,6 +105,7 @@ require('~/issue');
 
       expectIssueState(false);
       expect($btnClose).toHaveProp('disabled', false);
+      expect($('.issue_counter')).toHaveText(0);
     });
 
     it('fails to close an issue with success:false', function() {
@@ -121,6 +122,7 @@ require('~/issue');
       expectIssueState(true);
       expect($btnClose).toHaveProp('disabled', false);
       expectErrorMessage();
+      expect($('.issue_counter')).toHaveText(1);
     });
 
     it('fails to closes an issue with HTTP error', function() {
@@ -135,6 +137,7 @@ require('~/issue');
       expectIssueState(true);
       expect($btnClose).toHaveProp('disabled', true);
       expectErrorMessage();
+      expect($('.issue_counter')).toHaveText(1);
     });
   });
 
@@ -159,6 +162,7 @@ require('~/issue');
 
       expectIssueState(true);
       expect($btnReopen).toHaveProp('disabled', false);
+      expect($('.issue_counter')).toHaveText(1);
     });
   });
 }).call(this);