From f97df3eb3bb7cb953fc5b387adacbd91c4d85c6b Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Wed, 4 Jun 2025 13:42:55 +0100 Subject: [PATCH] Handle errors returned from Seshat (#30083) * Handle errors returned from Seshat Fix a bug which caused errors from Seshat to be swallowed, giving only "Unknown error". * fix type casting --- src/vector/platform/IPCManager.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/vector/platform/IPCManager.ts b/src/vector/platform/IPCManager.ts index dc183f0cfb..5a5bb9b0fb 100644 --- a/src/vector/platform/IPCManager.ts +++ b/src/vector/platform/IPCManager.ts @@ -11,7 +11,7 @@ import { type ElectronChannel } from "../../@types/global"; interface IPCPayload { id?: number; - error?: string; + error?: string | { message: string }; reply?: any; } @@ -53,7 +53,12 @@ export class IPCManager { const callbacks = this.pendingIpcCalls[payload.id]; delete this.pendingIpcCalls[payload.id]; if (payload.error) { - callbacks.reject(payload.error); + // `seshat.ts` sends a JavaScript object with a `message` property. Turn it into a proper Error. + let error = payload.error; + if (typeof error === "object" && error.message) { + error = new Error(error.message); + } + callbacks.reject(error); } else { callbacks.resolve(payload.reply); }