diff --git a/packages/taler-wallet-embedded/src/wallet-qjs.ts b/packages/taler-wallet-embedded/src/wallet-qjs.ts index 8dca034d7..57452301f 100644 --- a/packages/taler-wallet-embedded/src/wallet-qjs.ts +++ b/packages/taler-wallet-embedded/src/wallet-qjs.ts @@ -183,26 +183,21 @@ export function installNativeWalletListener(): void { const id = msg.id; logger.info(`native listener: got request for ${operation} (${id})`); + let respMsg: CoreApiResponse; try { - const respMsg = await handler.handleMessage( - operation, - id, - msg.args ?? {}, - ); - logger.info( - `native listener: sending ${respMsg.type} response for ${operation} (${id})`, - ); - sendNativeMessage(respMsg); + respMsg = await handler.handleMessage(operation, id, msg.args ?? {}); } catch (e) { - const respMsg: CoreApiResponse = { + respMsg = { type: "error", id, operation, error: getErrorDetailFromException(e), }; - sendNativeMessage(respMsg); - return; } + logger.info( + `native listener: sending back ${respMsg.type} message for operation ${operation} (${id})`, + ); + sendNativeMessage(respMsg); }; qjsOs.setMessageFromHostHandler((m) => onMessage(m));