Skip to content

Commit ff2bea7

Browse files
committed
Treat only AbortError as a cancelled OAuth refresh
1 parent 9373811 commit ff2bea7

2 files changed

Lines changed: 2 additions & 4 deletions

File tree

src/mcp/oauth-provider.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,7 @@ describe("createOAuthProvider", () => {
784784

785785
const pending = provider.refreshToken("refresh-me");
786786
while (seen.every((signal) => signal !== abort.signal)) await Promise.resolve();
787-
abort.abort(new Error("toolset disposed"));
787+
abort.abort(new DOMException("toolset disposed", "AbortError"));
788788
await expect(pending).rejects.toThrow("toolset disposed");
789789
await expect(pending).rejects.not.toBeInstanceOf(UnauthorizedError);
790790
expect(seen.some((signal) => signal === abort.signal)).toBe(true);

src/mcp/oauth-provider.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ function redirectUrisInclude(
5151
}
5252

5353
function isAbortError(err: unknown): boolean {
54-
if (typeof err !== "object" || err === null) return false;
55-
if ("name" in err && err.name === "AbortError") return true;
56-
return err instanceof Error && err.name === "Error";
54+
return typeof err === "object" && err !== null && "name" in err && err.name === "AbortError";
5755
}
5856

5957
// Dynamic client registration bakes in the loopback redirect_uri (ephemeral port).

0 commit comments

Comments
 (0)