parity(auth): SignOut() should clear local session even if remote call fails [from supabase-js]
Maintainers usually reply within 1 day
@Tr00d is already working on this.
Since Jul 17, 2026.
Assessment
This issue has not been assessed yet.
Description
SDK Parity: C# implementation needed
A change was made in supabase-js that needs to be implemented in this repository for SDK parity.
Reference Implementation (supabase-js)
What Changed
signOut() (for any scope other than 'others') now clears the local session and removes the PKCE code verifier even when the remote sign-out API call fails, instead of only doing so on success. A network/API error no longer leaves a stale local session that appears "signed in" client-side.
Code Reference
const removeCurrentSession = async () => {
await this._removeSession()
await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)
}
if (scope !== 'others') {
await removeCurrentSession()
}
Confirmed in supabase-csharp: Gotrue/Client.cs:426-431 SignOut() awaits _api.SignOut(...) unguarded; if the remote call throws (network/API error), the exception propagates and UpdateSession(null)/NotifyAuthStateChange(SignedOut) never run, leaving a stale local session.
Implementation Guidance
Expected API Surface
SignOut() should clear the local session unconditionally for scopes other than "others", regardless of whether the remote API call succeeds or throws.
Acceptance Criteria
- Fix implemented matching supabase-js behavior
- Unit test: remote sign-out throwing a network error still results in local session being cleared
- No breaking changes to "others" scope behavior
Context
- supabase-js version: v3.0.0-next.29 / 2.110.6
- Parity tracking: This issue was auto-generated by SDK parity analysis
- Related parity issues: supabase-py (SDK-1326), supabase-kt (#1358)
Generated with Claude Code /sync-sdk-parity
- Dominant language
- C#
- Stars
- 702
- Forks
- 106
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 51
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from supabase/supabase-csharp
-
OAuth State Error for social providers since Supabase.Gotrue v6.1.0May be free again @Tr00d claimed this 47 days ago, and no pull request is open. Openbug
supabase/supabase-csharp#377 · 4 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Postgres Changes filters are validated as anon because SetAuth is applied after channel joinMay be free again @Tr00d claimed this 60 days ago, and no pull request is open. Openarea: postgrest bug
supabase/supabase-csharp#345 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
parity(functions): never send new-format API key as Authorization Bearer [from supabase-js]May be free again @Tr00d claimed this 85 days ago, and no pull request is open. Openbug parity
supabase/supabase-csharp#279 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
parity(client): unrecognized sb_ API key subtypes are silently accepted, no warning [from supabase-js]May be free again @Tr00d claimed this 85 days ago, and no pull request is open. Openparity
supabase/supabase-csharp#278 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
parity(realtime): add replication_ready broadcast option and system event payload [from supabase-js]May be free again @Tr00d claimed this 99 days ago, and no pull request is open. Openparity
supabase/supabase-csharp#272 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in supabase/supabase-csharp
Similar issues
-
VideoViewer: rotated (portrait phone) videos shown sideways when system decimal separator is a commaOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Volodymyr-Petrunin/Bankomaten#45 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
AvaloniaUI/Avalonia#22420 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
dotnet/SqlClient#4823 · 1 comment ·
Maintainers usually reply within 2 days
-
type/automation type/tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day