diff --git a/CHANGELOG.md b/CHANGELOG.md
index 05d147c8fb8e..1ce51435b782 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -212,6 +212,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 - Fix EUI/OUI type errors ([#3798](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3798))
 - Remove unused Sass in `tile_map` plugin ([#4110](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4110))
 - [Table Visualization] Remove custom styling for text-align:center in favor of OUI utility class. ([#4164](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4164))
+- Replace the use of `bluebird` in `saved_objects` plugin ([#4026](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4026))
 
 ### 🔩 Tests
 
diff --git a/src/plugins/saved_objects/public/saved_object/saved_object.test.ts b/src/plugins/saved_objects/public/saved_object/saved_object.test.ts
index 7e10a68c2d1f..3b1eea303f23 100644
--- a/src/plugins/saved_objects/public/saved_object/saved_object.test.ts
+++ b/src/plugins/saved_objects/public/saved_object/saved_object.test.ts
@@ -28,7 +28,6 @@
  * under the License.
  */
 
-import Bluebird from 'bluebird';
 import { createSavedObjectClass } from './saved_object';
 import {
   SavedObject,
@@ -76,16 +75,16 @@ describe('Saved Object', () => {
    */
   function stubOpenSearchResponse(mockDocResponse: SimpleSavedObject<SavedObjectAttributes>) {
     // Stub out search for duplicate title:
-    savedObjectsClientStub.get = jest.fn().mockReturnValue(Bluebird.resolve(mockDocResponse));
-    savedObjectsClientStub.update = jest.fn().mockReturnValue(Bluebird.resolve(mockDocResponse));
+    savedObjectsClientStub.get = jest.fn().mockReturnValue(Promise.resolve(mockDocResponse));
+    savedObjectsClientStub.update = jest.fn().mockReturnValue(Promise.resolve(mockDocResponse));
 
     savedObjectsClientStub.find = jest
       .fn()
-      .mockReturnValue(Bluebird.resolve({ savedObjects: [], total: 0 }));
+      .mockReturnValue(Promise.resolve({ savedObjects: [], total: 0 }));
 
     savedObjectsClientStub.bulkGet = jest
       .fn()
-      .mockReturnValue(Bluebird.resolve({ savedObjects: [mockDocResponse] }));
+      .mockReturnValue(Promise.resolve({ savedObjects: [mockDocResponse] }));
   }
 
   function stubSavedObjectsClientCreate(
@@ -94,7 +93,7 @@ describe('Saved Object', () => {
   ) {
     savedObjectsClientStub.create = jest
       .fn()
-      .mockReturnValue(resolve ? Bluebird.resolve(resp) : Bluebird.reject(resp));
+      .mockReturnValue(resolve ? Promise.resolve(resp) : Promise.reject(resp));
   }
 
   /**
@@ -193,7 +192,7 @@ describe('Saved Object', () => {
         return createInitializedSavedObject({ type: 'dashboard', id: myId }).then((savedObject) => {
           savedObjectsClientStub.create = jest.fn().mockImplementation(() => {
             expect(savedObject.id).toBe(myId);
-            return Bluebird.resolve({ id: myId });
+            return Promise.resolve({ id: myId });
           });
           savedObject.copyOnSave = false;
 
@@ -227,7 +226,7 @@ describe('Saved Object', () => {
         return createInitializedSavedObject({ type: 'dashboard', id }).then((savedObject) => {
           savedObjectsClientStub.create = jest.fn().mockImplementation(() => {
             expect(savedObject.isSaving).toBe(true);
-            return Bluebird.resolve({
+            return Promise.resolve({
               type: 'dashboard',
               id,
               _version: 'foo',
@@ -246,7 +245,7 @@ describe('Saved Object', () => {
         return createInitializedSavedObject({ type: 'dashboard' }).then((savedObject) => {
           savedObjectsClientStub.create = jest.fn().mockImplementation(() => {
             expect(savedObject.isSaving).toBe(true);
-            return Bluebird.reject('');
+            return Promise.reject();
           });
 
           expect(savedObject.isSaving).toBe(false);
@@ -681,7 +680,7 @@ describe('Saved Object', () => {
           );
           indexPattern.title = indexPattern.id!;
           savedObject.searchSource!.setField('index', indexPattern);
-          return Bluebird.resolve(indexPattern);
+          return Promise.resolve(indexPattern);
         });
         expect(!!savedObject.searchSource!.getField('index')).toBe(false);