Disconnected session cookie not removed after connecting again
Check existing issues
- [X] I checked there isn't already an issue for the bug I encountered.
Describe the bug
When calling disconnect, wagmi would normally store a session cookie like wagmi.io.metamask.disconnected so the page stays disconnected after a refresh.
However, this cookie should be cleared/removed if the user connects again. This removal of the "disconnected" cookie currently only works when the the "connect" call is made on the root / and first level pages (e.g. /foo) but NOT on pages that are deeper (e.g. /bar/qux or /a/b/c).
Link to Minimal Reproducible Example
https://wagmi-bug.vercel.app/
Steps To Reproduce
(Code is available at https://github.com/dengpeng/wagmi-bug)
-
Correct behavior:
- Go to https://wagmi-bug.vercel.app/ or https://wagmi-bug.vercel.app/foo.
- Connect wallet then disconnect wallet
- Now a session cookie
wagmi.io.metamask.disconnectedis set. - After a successful connect on that page once again, the cookie
wagmi.io.metamask.disconnectedis removed. ✅
-
Incorrect behavior:
- Go to https://wagmi-bug.vercel.app/bar/qux or https://wagmi-bug.vercel.app/a/b/c
- Connect wallet then disconnect wallet
- Now a session cookie
wagmi.io.metamask.disconnectedis set. - After a successful connect on that page once again, the cookie
wagmi.io.metamask.disconnectedis NOT removed. ❌ - This will lead to wallet not automatically re-connecting after the page is reloaded. ⚠️
What Wagmi package(s) are you using?
wagmi, @wagmi/core
Wagmi Version
@wagmi/[email protected], [email protected]
Viem Version
2.16.3
TypeScript Version
5
Anything else?
No response
yeah same issue
https://github.com/wevm/wagmi/issues/4073
Yep confirm this issue exists.
My fix for now is to delete wagmi.*.disconnected cookies when you are connected.
I tried to opt out the storage object in createConfig method. The wagmi.*.disconnected, wagmi.store, etc. are saved in localStorage.
Are there any other scenario where these object could be stored? so that it can be handled correctly
I had a poke at this, it seems setting a different cookie path fixes the issue as cookies with the path / are not recognised on e.g. /a/b/c.
This issue has been locked since it has been closed for more than 14 days.
If you found a concrete bug or regression related to it, please open a new bug report with a reproduction against the latest Wagmi version. If you have any questions or comments you can create a new discussion thread.