diff --git a/server/account/src/service.ts b/server/account/src/service.ts
index 7a44382da9..cd30b04be9 100644
--- a/server/account/src/service.ts
+++ b/server/account/src/service.ts
@@ -120,6 +120,8 @@ export class UpgradeWorker {
         ctx.error('error', { err })
       }
 
+      Analytics.handleError(err)
+
       ctx.info('---failed---------', {
         pending: this.toProcess,
         time: Date.now() - t,
diff --git a/server/tool/src/index.ts b/server/tool/src/index.ts
index 4a358558cc..1d1d5c1376 100644
--- a/server/tool/src/index.ts
+++ b/server/tool/src/index.ts
@@ -431,12 +431,17 @@ export async function upgradeModel (
         ctx.info('send force close', { workspace: workspaceId.name, transactorUrl })
         const serverEndpoint = transactorUrl.replaceAll('wss://', 'https://').replace('ws://', 'http://')
         const token = generateToken(systemAccountEmail, workspaceId, { admin: 'true' })
-        await fetch(
-          serverEndpoint + `/api/v1/manage?token=${token}&operation=force-close&wsId=${toWorkspaceString(workspaceId)}`,
-          {
-            method: 'PUT'
-          }
-        )
+        try {
+          await fetch(
+            serverEndpoint +
+              `/api/v1/manage?token=${token}&operation=force-close&wsId=${toWorkspaceString(workspaceId)}`,
+            {
+              method: 'PUT'
+            }
+          )
+        } catch (err: any) {
+          // Ignore error if transactor is not yet ready
+        }
       }
     } finally {
       await connection?.sendForceClose()