From 7f4353fcf12f8d1294a76b6660a4a9a748ba23c7 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Mon, 15 Sep 2025 12:26:40 -0400 Subject: [PATCH] log errors in tracked promises --- packages/backend/src/misc/promise-tracker.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/misc/promise-tracker.ts b/packages/backend/src/misc/promise-tracker.ts index 2c0cd03bce..1fb372111e 100644 --- a/packages/backend/src/misc/promise-tracker.ts +++ b/packages/backend/src/misc/promise-tracker.ts @@ -3,6 +3,9 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import { coreLogger } from '@/boot/coreLogger.js'; + +const logger = coreLogger.createSubLogger('background'); const promiseRefs: Set>> = new Set(); export function trackTask(task: () => Promise): void { @@ -16,7 +19,9 @@ export function trackTask(task: () => Promise): void { export function trackPromise(promise: Promise) { const ref = new WeakRef(promise); promiseRefs.add(ref); - promise.finally(() => promiseRefs.delete(ref)); + promise + .catch(err => logger.error('Unhandled error in tracked background task:', { err })) + .finally(() => promiseRefs.delete(ref)); } export async function allSettled(): Promise {