diff --git a/apps/web/src/api/index.ts b/apps/web/src/api/index.ts
index 21e9da175c37fea0972e128081affe9163434f1f..aab368b5a233c10718a5343eef2eaf1731b20e38 100644
--- a/apps/web/src/api/index.ts
+++ b/apps/web/src/api/index.ts
@@ -62,6 +62,7 @@ class GatewayApi {
 
       const conf: any = {};
       let eventId = "-1";
+      const events = {};
       conf.fn = (message: GatewayMessageType) => {
         console.log(new Date().getTime() + ' Received message: ', message);
         if (message.id === eventId) {
@@ -69,6 +70,8 @@ class GatewayApi {
           this.events.off('message', conf.fn);
           clearTimeout(conf.timeoutId);
           conf.resolve({ status: 200, json: () => message.data });
+        } else {
+          events[message.id] = message;
         }
       };
       this.events.on('message', conf.fn);
@@ -85,6 +88,11 @@ class GatewayApi {
         const gatewayResponse = await fetch(url, init);
         const gatewayData = await gatewayResponse.json();
         eventId = gatewayData.id;
+        if (events[eventId]) {
+          this.events.off('message', conf.fn);
+          clearTimeout(conf.timeoutId);
+          conf.resolve({ status: 200, json: () => events[eventId].data });
+        }
         console.log(new Date().getTime() + ' Received event id: ' + eventId);
       });
     };