From ef378f2cf2c01883ec193d048a74c2ddbb880b27 Mon Sep 17 00:00:00 2001 From: Omar Ajoue Date: Tue, 27 Sep 2022 11:43:56 +0200 Subject: [PATCH] fix: wrap external hooks calls in a try catch (#4208) --- packages/cli/src/ExternalHooks.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/ExternalHooks.ts b/packages/cli/src/ExternalHooks.ts index d4f905f57..924991df4 100644 --- a/packages/cli/src/ExternalHooks.ts +++ b/packages/cli/src/ExternalHooks.ts @@ -2,6 +2,7 @@ /* eslint-disable import/no-dynamic-require */ /* eslint-disable no-restricted-syntax */ // eslint-disable-next-line import/no-cycle +import { LoggerProxy } from 'n8n-workflow'; import { Db, IExternalHooksClass, IExternalHooksFileData, IExternalHooksFunctions } from '.'; import config from '../config'; @@ -87,8 +88,13 @@ class ExternalHooksClass implements IExternalHooksClass { } for (const externalHookFunction of this.externalHooks[hookName]) { - // eslint-disable-next-line no-await-in-loop - await externalHookFunction.apply(externalHookFunctions, hookParameters); + try { + // eslint-disable-next-line no-await-in-loop + await externalHookFunction.apply(externalHookFunctions, hookParameters); + } catch (error) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions + LoggerProxy.info(`Error in external hook "${hookName}": ${error.message}`); + } } }