From 2b9391a9758041f09c2e948eab942c45a9919aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Wed, 14 Feb 2024 17:29:23 +0100 Subject: [PATCH] fix(core): Improve handling of wrapped errors (no-changelog) (#8631) --- packages/workflow/src/errors/abstract/node.error.ts | 3 +-- packages/workflow/src/errors/application.error.ts | 2 +- packages/workflow/test/errors/node.error.test.ts | 8 ++++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/workflow/src/errors/abstract/node.error.ts b/packages/workflow/src/errors/abstract/node.error.ts index bccfcde099..d724991acf 100644 --- a/packages/workflow/src/errors/abstract/node.error.ts +++ b/packages/workflow/src/errors/abstract/node.error.ts @@ -45,8 +45,7 @@ export abstract class NodeError extends ExecutionBaseError { super(message, options); if (error instanceof NodeError) { - this.level = 'error'; - this.message = `[RE-WRAPPED]: ${message}`; + this.tags.reWrapped = true; } } diff --git a/packages/workflow/src/errors/application.error.ts b/packages/workflow/src/errors/application.error.ts index e48ae91bee..c4d0844055 100644 --- a/packages/workflow/src/errors/application.error.ts +++ b/packages/workflow/src/errors/application.error.ts @@ -10,7 +10,7 @@ export type ReportingOptions = { export class ApplicationError extends Error { level: Level; - readonly tags?: Event['tags']; + readonly tags: NonNullable; readonly extra?: Event['extra']; diff --git a/packages/workflow/test/errors/node.error.test.ts b/packages/workflow/test/errors/node.error.test.ts index a66c4f26e0..4c5529bed5 100644 --- a/packages/workflow/test/errors/node.error.test.ts +++ b/packages/workflow/test/errors/node.error.test.ts @@ -13,10 +13,10 @@ describe('NodeError', () => { const wrapped2 = new NodeOperationError(node, opsError); expect(wrapped1.level).toEqual('error'); - expect(wrapped1.message).toEqual( - '[RE-WRAPPED]: The service was not able to process your request', - ); + expect(wrapped1.message).toEqual('The service was not able to process your request'); + expect(wrapped1.tags).toEqual(expect.objectContaining({ reWrapped: true })); expect(wrapped2.level).toEqual('error'); - expect(wrapped2.message).toEqual('[RE-WRAPPED]: Some operation failed'); + expect(wrapped2.message).toEqual('Some operation failed'); + expect(wrapped2.tags).toEqual(expect.objectContaining({ reWrapped: true })); }); });