diff --git a/src/store/modules/Configuration/FirmwareStore.js b/src/store/modules/Configuration/FirmwareStore.js
index b76748f..cae74eb 100644
--- a/src/store/modules/Configuration/FirmwareStore.js
+++ b/src/store/modules/Configuration/FirmwareStore.js
@@ -17,8 +17,8 @@
       (state.hostFirmwareVersion = hostFirmwareVersion)
   },
   actions: {
-    getBmcFirmware({ commit }) {
-      api
+    async getBmcFirmware({ commit }) {
+      return await api
         .get('/redfish/v1/Managers/bmc')
         .then(response => {
           const bmcFirmwareVersion = response.data.FirmwareVersion;
@@ -28,8 +28,8 @@
           console.log(error);
         });
     },
-    getHostFirmware({ commit }) {
-      api
+    async getHostFirmware({ commit }) {
+      return await api
         .get('/redfish/v1/Systems/system')
         .then(response => {
           const hostFirmwareVersion = response.data.BiosVersion;
diff --git a/src/store/modules/Configuration/NetworkSettingsStore.js b/src/store/modules/Configuration/NetworkSettingsStore.js
index 3b1f232..f6912c8 100644
--- a/src/store/modules/Configuration/NetworkSettingsStore.js
+++ b/src/store/modules/Configuration/NetworkSettingsStore.js
@@ -13,8 +13,8 @@
       (state.ethernetData = ethernetData)
   },
   actions: {
-    getEthernetData({ commit }) {
-      api
+    async getEthernetData({ commit }) {
+      return await api
         .get('/redfish/v1/Managers/bmc/EthernetInterfaces')
         .then(response =>
           response.data.Members.map(
diff --git a/src/store/modules/Control/PowerControlStore.js b/src/store/modules/Control/PowerControlStore.js
index 63ede2d..7858539 100644
--- a/src/store/modules/Control/PowerControlStore.js
+++ b/src/store/modules/Control/PowerControlStore.js
@@ -17,8 +17,8 @@
       (state.powerConsumptionValue = powerConsumptionValue)
   },
   actions: {
-    getPowerControl({ commit }) {
-      api
+    async getPowerControl({ commit }) {
+      return await api
         .get('/redfish/v1/Chassis/chassis/Power')
         .then(response => {
           const powerControl = response.data.PowerControl;
diff --git a/src/store/modules/GlobalStore.js b/src/store/modules/GlobalStore.js
index c9e92a7..879d8d8 100644
--- a/src/store/modules/GlobalStore.js
+++ b/src/store/modules/GlobalStore.js
@@ -40,8 +40,8 @@
       (state.hostStatus = hostStateMapper(hostState))
   },
   actions: {
-    getBmcTime({ commit }) {
-      api
+    async getBmcTime({ commit }) {
+      return await api
         .get('/redfish/v1/Managers/bmc')
         .then(response => {
           const bmcDateTime = response.data.DateTime;
diff --git a/src/store/modules/Health/EventLogStore.js b/src/store/modules/Health/EventLogStore.js
index d2f970a..418e455 100644
--- a/src/store/modules/Health/EventLogStore.js
+++ b/src/store/modules/Health/EventLogStore.js
@@ -62,8 +62,8 @@
     setHealthStatus: (state, status) => (state.healthStatus = status)
   },
   actions: {
-    getEventLogData({ commit }) {
-      api
+    async getEventLogData({ commit }) {
+      return await api
         .get('/xyz/openbmc_project/logging/enumerate')
         .then(response => {
           const responseData = response.data.data;
diff --git a/src/store/modules/Overview/OverviewStore.js b/src/store/modules/Overview/OverviewStore.js
index 30558d8..314728c 100644
--- a/src/store/modules/Overview/OverviewStore.js
+++ b/src/store/modules/Overview/OverviewStore.js
@@ -23,8 +23,8 @@
       (state.serverSerialNumber = serverSerialNumber)
   },
   actions: {
-    getServerInfo({ commit }) {
-      api
+    async getServerInfo({ commit }) {
+      return await api
         .get('/redfish/v1/Systems/system')
         .then(response => {
           const serverInfo = response.data;
