From d9f202d59901015a6891294a917ef8c18f42147b Mon Sep 17 00:00:00 2001 From: Alan Barker Date: Fri, 21 Mar 2025 10:43:53 -0400 Subject: [PATCH] fix: Fix cancelling timeout when waitForInitialization throws an exception --- packages/shared/sdk-server/src/LDClientImpl.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/shared/sdk-server/src/LDClientImpl.ts b/packages/shared/sdk-server/src/LDClientImpl.ts index ecc332c2f2..76e951224f 100644 --- a/packages/shared/sdk-server/src/LDClientImpl.ts +++ b/packages/shared/sdk-server/src/LDClientImpl.ts @@ -940,14 +940,16 @@ export default class LDClientImpl implements LDClient { if (timeout) { const cancelableTimeout = cancelableTimedPromise(timeout, 'waitForInitialization'); return Promise.race([ - basePromise.then(() => cancelableTimeout.cancel()).then(() => this), + basePromise.then(() => this), cancelableTimeout.promise.then(() => this), - ]).catch((reason) => { - if (reason instanceof LDTimeoutError) { - logger?.error(reason.message); - } - throw reason; - }); + ]) + .catch((reason) => { + if (reason instanceof LDTimeoutError) { + logger?.error(reason.message); + } + throw reason; + }) + .finally(() => cancelableTimeout.cancel()); } return basePromise; }