From 193fe5ac1ff316c9d379b621702de26a4ef97943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Mon, 11 Dec 2023 11:08:14 +0100 Subject: [PATCH] refactor(core): Log any hard-deletion errors during pruning (no-changelog) (#7965) ## Summary Pruning is a minor background task so hard-deletion errors during pruning should be simply logged for later investigation rather than rethrown. ... #### How to test the change: 1. ... ## Issues fixed Include links to Github issue or Community forum post or **Linear ticket**: > Important in order to close automatically and provide context to reviewers ... ## Review / Merge checklist - [ ] PR title and summary are descriptive. **Remember, the title automatically goes into the changelog. Use `(no-changelog)` otherwise.** ([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md)) - [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up ticket created. - [ ] Tests included. > A bug is not considered fixed, unless a test is added to prevent it from happening again. A feature is not complete without tests. > > *(internal)* You can use Slack commands to trigger [e2e tests](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#a39f9e5ba64a48b58a71d81c837e8227) or [deploy test instance](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#f6a177d32bde4b57ae2da0b8e454bfce) or [deploy early access version on Cloud](https://www.notion.so/n8n/Cloudbot-3dbe779836004972b7057bc989526998?pvs=4#fef2d36ab02247e1a0f65a74f6fb534e). --- packages/cli/src/services/pruning.service.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/services/pruning.service.ts b/packages/cli/src/services/pruning.service.ts index 9320c3c34..0727881a0 100644 --- a/packages/cli/src/services/pruning.service.ts +++ b/packages/cli/src/services/pruning.service.ts @@ -9,6 +9,7 @@ import config from '@/config'; import { ExecutionRepository } from '@db/repositories/execution.repository'; import { Logger } from '@/Logger'; import { ExecutionEntity } from '@db/entities/ExecutionEntity'; +import { jsonStringify } from 'n8n-workflow'; @Service() export class PruningService { @@ -85,8 +86,13 @@ export class PruningService { .then((rate) => this.scheduleHardDeletion(rate)) .catch((error) => { this.scheduleHardDeletion(1 * TIME.SECOND); - // Error will be handled by the global uncaught error handler - throw error; + + const errorMessage = + error instanceof Error + ? error.message + : jsonStringify(error, { replaceCircularRefs: true }); + + this.logger.error('[Pruning] Failed to hard-delete executions', { errorMessage }); }); }, rateMs);