diff --git a/app/assets/javascripts/protected_branches/protected_branch_edit.js b/app/assets/javascripts/protected_branches/protected_branch_edit.js
index 67ae33e1fc83a533dd9a9b4d63e8488ac04044e1..22973ae318bcf8ef885de3dd85ce68375012bed8 100644
--- a/app/assets/javascripts/protected_branches/protected_branch_edit.js
+++ b/app/assets/javascripts/protected_branches/protected_branch_edit.js
@@ -182,6 +182,14 @@ export default class ProtectedBranchEdit {
           persisted: true,
         };
       }
+      if (currentItem.deploy_key_id) {
+        return {
+          id: currentItem.id,
+          deploy_key_id: currentItem.deploy_key_id,
+          type: LEVEL_TYPES.DEPLOY_KEY,
+          persisted: true,
+        };
+      }
 
       return {
         id: currentItem.id,
diff --git a/spec/frontend/protected_branches/protected_branch_edit_spec.js b/spec/frontend/protected_branches/protected_branch_edit_spec.js
index 301b0e8e15721faae89bedf1795ce6f652ec4ae7..463354ab7e1eb3e898bfe9728378ff6900758ef6 100644
--- a/spec/frontend/protected_branches/protected_branch_edit_spec.js
+++ b/spec/frontend/protected_branches/protected_branch_edit_spec.js
@@ -43,6 +43,11 @@ const response = {
       group_id: null,
       deploy_key_id: null,
     },
+    {
+      id: 39,
+      access_level: 40,
+      deploy_key_id: 45,
+    },
   ],
 };
 
@@ -193,6 +198,21 @@ describe('ProtectedBranchEdit', () => {
         expect(dropdown.preselected[0].id).toBe(response.push_access_levels[0].id);
       });
 
+      it('updates deploy key on save for enabled dropdowns', async () => {
+        const selectedValue = [{ deploy_key_id: 45 }];
+        const ProtectedBranchEditInstance = create({});
+        const dropdown = ProtectedBranchEditInstance.push_access_levels_dropdown;
+        dropdown.$emit('select', selectedValue);
+        dropdown.$emit('hidden');
+        await waitForPromises();
+        expect(dropdown.preselected[1]).toEqual({
+          deploy_key_id: 45,
+          id: 39,
+          persisted: true,
+          type: 'deploy_key',
+        });
+      });
+
       it('does not update selected item on save for disabled dropdowns', async () => {
         const selectedValue = [{ access_level: 40 }];
         const ProtectedBranchEditInstance = create({ pushDisabled: '' });