From 081b98cc4b0775a33c76cfeada1706087e2ccd0e Mon Sep 17 00:00:00 2001
From: Jed Fox <git@jedfox.com>
Date: Fri, 24 Feb 2023 15:43:19 -0500
Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20post=20messages=20to=20the=20wo?=
 =?UTF-8?q?rker=20until=20it=20is=20ready=20(#681)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../platform/client/fetch/index.browser.js    | 27 ++++++++-----------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/packages/loot-core/src/platform/client/fetch/index.browser.js b/packages/loot-core/src/platform/client/fetch/index.browser.js
index 6b39f14a8..2cb04ba84 100644
--- a/packages/loot-core/src/platform/client/fetch/index.browser.js
+++ b/packages/loot-core/src/platform/client/fetch/index.browser.js
@@ -88,7 +88,7 @@ function connectWorker(worker, onOpen, onError) {
       // Send any messages that were queued while closed
       if (messageQueue.length > 0) {
         messageQueue.forEach(msg => worker.postMessage(msg));
-        messageQueue = [];
+        messageQueue = null;
       }
 
       onOpen();
@@ -138,22 +138,17 @@ module.exports.send = function send(name, args, { catchErrors = false } = {}) {
   return new Promise((resolve, reject) => {
     uuid.v4().then(id => {
       replyHandlers.set(id, { resolve, reject });
-      if (globalWorker) {
-        globalWorker.postMessage({
-          id,
-          name,
-          args,
-          undoTag: undo.snapshot(),
-          catchErrors,
-        });
+      let message = {
+        id,
+        name,
+        args,
+        undoTag: undo.snapshot(),
+        catchErrors,
+      };
+      if (messageQueue) {
+        messageQueue.push(message);
       } else {
-        messageQueue.push({
-          id,
-          name,
-          args,
-          undoTag: undo.snapshot(),
-          catchErrors,
-        });
+        globalWorker.postMessage(message);
       }
     });
   });
-- 
GitLab