diff --git a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_identifiers.vue b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_identifiers.vue
index 05c33335227a8a428c4c50ed97bcf37d28e809d0..4f6e30360f1e534702f4d7fff0660f8af5a51c55 100644
--- a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_identifiers.vue
+++ b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_identifiers.vue
@@ -21,6 +21,11 @@ export default {
       identifiers: [{ identifierCode: '', identifierUrl: '' }],
     };
   },
+  watch: {
+    identifiers() {
+      this.emitChanges();
+    },
+  },
   methods: {
     emitChanges() {
       this.$emit('change', {
@@ -35,7 +40,6 @@ export default {
     },
     removeIdentifier(index) {
       this.identifiers.splice(index, 1);
-      this.emitChanges();
     },
     // null is when the user didn't input anything yet
     // false when the user provided invalid input and
diff --git a/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js b/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js
index c33b3160fcff443db22b42896ae553f342140971..692ec14f3c207b06ede84148e27cd5b505876d39 100644
--- a/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js
+++ b/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js
@@ -80,6 +80,13 @@ describe('New vulnerability - Section Identifiers', () => {
 
     expect(findIdentifierRows()).toHaveLength(2);
 
+    expect(wrapper.emitted('change')[0][0]).toEqual({
+      identifiers: [
+        { name: '', url: '' },
+        { name: '', url: '' },
+      ],
+    });
+
     wrapper.findByLabelText('Remove identifier row').trigger('click');
     await nextTick();