diff --git a/packages/openlogin-jrpc/src/jrpcEngine.ts b/packages/openlogin-jrpc/src/jrpcEngine.ts index 5b92400f..3273788d 100644 --- a/packages/openlogin-jrpc/src/jrpcEngine.ts +++ b/packages/openlogin-jrpc/src/jrpcEngine.ts @@ -75,6 +75,8 @@ export class JRPCEngine extends SafeEventEmitter { const end: JRPCEngineEndCallback = (err?: unknown) => { const error = err || res.error; if (error) { + if (Object.keys(error).includes("stack") === false) error.stack = "Stack trace is not available."; + res.error = serializeError(error, { shouldIncludeStack: true, fallbackError: { @@ -319,6 +321,8 @@ export class JRPCEngine extends SafeEventEmitter { // Ensure no result is present on an errored response delete res.result; if (!res.error) { + if (Object.keys(error).includes("stack") === false) error.stack = "Stack trace is not available."; + res.error = serializeError(error, { shouldIncludeStack: true, fallbackError: { @@ -411,6 +415,8 @@ export function providerFromEngine(engine: JRPCEngine): SafeEventEmitterProvider provider.sendAsync = async (req: JRPCRequest) => { const res = await engine.handle(req); if (res.error) { + if (Object.keys(res.error).includes("stack") === false) res.error.stack = "Stack trace is not available."; + const err = serializeError(res.error, { fallbackError: { message: res.error?.message || res.error?.toString(),