diff --git a/lib/renderer/init.js b/lib/renderer/init.js index b7fc3877ab..ae694423d3 100644 --- a/lib/renderer/init.js +++ b/lib/renderer/init.js @@ -45,6 +45,17 @@ electron.ipcRenderer.on('ELECTRON_INTERNAL_RENDERER_ASYNC_WEB_FRAME_METHOD', (ev event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, null, resolvedResult) }) .catch((resolvedError) => { + if (resolvedError instanceof Error) { + // Errors get lost, because: JSON.stringify(new Error('Message')) === {} + // Take the serializable properties and construct a generic object + resolvedError = { + message: resolvedError.message, + stack: resolvedError.stack, + name: resolvedError.name, + __ELECTRON_SERIALIZED_ERROR__: true + } + } + event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, resolvedError) }) }