From 18a365e7555d6df9d1f5486e4d05c24c65e1b867 Mon Sep 17 00:00:00 2001 From: Peter Siska <63866+peschee@users.noreply.github.com> Date: Thu, 26 Feb 2026 20:39:18 +0100 Subject: [PATCH] fix: preserve DCR client info on disconnect to avoid re-registration errors Stop clearing dynamically registered client information from sessionStorage in clear(). The DCR-obtained client_id remains valid at the IDP, so discarding it on disconnect/reconnect forces an unnecessary re-registration that IDPs like Keycloak reject. --- client/src/components/__tests__/AuthDebugger.test.tsx | 1 - client/src/lib/auth.ts | 4 ---- 2 files changed, 5 deletions(-) diff --git a/client/src/components/__tests__/AuthDebugger.test.tsx b/client/src/components/__tests__/AuthDebugger.test.tsx index fec876778..e5c5aff37 100644 --- a/client/src/components/__tests__/AuthDebugger.test.tsx +++ b/client/src/components/__tests__/AuthDebugger.test.tsx @@ -64,7 +64,6 @@ jest.mock("@/lib/auth", () => ({ clear: jest.fn().mockImplementation(() => { // Mock the real clear() behavior which removes items from sessionStorage sessionStorage.removeItem("[https://example.com/mcp] mcp_tokens"); - sessionStorage.removeItem("[https://example.com/mcp] mcp_client_info"); sessionStorage.removeItem( "[https://example.com/mcp] mcp_server_metadata", ); diff --git a/client/src/lib/auth.ts b/client/src/lib/auth.ts index 879936104..699b33862 100644 --- a/client/src/lib/auth.ts +++ b/client/src/lib/auth.ts @@ -245,10 +245,6 @@ export class InspectorOAuthClientProvider implements OAuthClientProvider { } clear() { - clearClientInformationFromSessionStorage({ - serverUrl: this.serverUrl, - isPreregistered: false, - }); sessionStorage.removeItem( getServerSpecificKey(SESSION_KEYS.TOKENS, this.serverUrl), );