Skip to content
This repository was archived by the owner on Mar 16, 2026. It is now read-only.

Commit 1a678e9

Browse files
committed
fix(auth): Clear Stacks session data before connect
Clears existing Stacks/Blockstack session data from `localStorage` to prevent JSON parse errors and ensure a clean state when switching between different wallet providers (e.g., Leather, Xverse).
1 parent a8146c5 commit 1a678e9

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

src/components/auth/StacksProvider.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,28 @@ const validateNetworkAddress = (address: string): boolean => {
2222

2323
export async function connectWallet({ onCancel }: ConnectWalletOptions) {
2424
try {
25+
// Clear any existing wallet session data to prevent JSON parse errors
26+
// when switching between different wallet providers (Leather/Xverse)
27+
try {
28+
localStorage.removeItem("blockstack-session");
29+
localStorage.removeItem("stacks-connect");
30+
localStorage.removeItem("@stacks/connect");
31+
localStorage.removeItem("STX_PROVIDER");
32+
// Clear any other stacks-related session data
33+
Object.keys(localStorage).forEach((key) => {
34+
if (
35+
key.startsWith("stacks") ||
36+
key.startsWith("blockstack") ||
37+
key.startsWith("@stacks") ||
38+
key.startsWith("STX")
39+
) {
40+
localStorage.removeItem(key);
41+
}
42+
});
43+
} catch (e) {
44+
console.warn("Failed to clear wallet session data:", e);
45+
}
46+
2547
const response = await connect();
2648

2749
// After successful connection, validate the network

0 commit comments

Comments
 (0)