From bf858f4623eb7ab94a2c4376eb49729f3bee84c7 Mon Sep 17 00:00:00 2001 From: deepshekhardas Date: Tue, 26 May 2026 12:32:01 +0530 Subject: [PATCH] Fix ExponentialBackoff maxElapsed timeout bypass in execute() The execute() method tracked elapsedMs across retries but never checked it against maxElapsed, allowing the retry loop to continue indefinitely regardless of the configured time limit. --- packages/core/src/v3/apps/backoff.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/core/src/v3/apps/backoff.ts b/packages/core/src/v3/apps/backoff.ts index d09e6d75fd5..81c750b97c7 100644 --- a/packages/core/src/v3/apps/backoff.ts +++ b/packages/core/src/v3/apps/backoff.ts @@ -340,6 +340,10 @@ export class ExponentialBackoff { elapsedMs += Date.now() - start; clearTimeout(attemptTimeout); } + + if (elapsedMs > this.#maxElapsed * 1000) { + break; + } } if (finalError instanceof AttemptTimeout) {