• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 41066574325
94%

Build:
DEFAULT BRANCH: main
Ran 30 Oct 2026 01:52PM UTC
Jobs 12
Files 193
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Oct 2026 01:50PM UTC coverage: 94.149% (-0.1%) from 94.246%
41066574325

push

github

web-flow
fix(auth): sign out as asked when a global or others sign out finds the refresh token rejected (#2110)

Resolves SDK-2602.

Implements the `global` and `others` part of the sign out spec in
https://github.com/supabase/sdk/pull/302, as amended by
https://github.com/supabase/sdk/pull/302#pullrequestreview-5702878352.

## Problem

`signOut(scope: global | others)` refreshed an expired access token
through `getSession()`. When the server rejected the refresh token, that
regular refresh signed the device out with
`SignOutReason.sessionExpired`, even though the user asked to sign out,
and `signOut` rethrew the raw refresh error. The app could not tell that
the other sessions were left alive.

## Changes

- `global` and `others` now refresh an expired access token themselves
instead of through `getSession()`. A failed refresh emits no events.
- When the server rejects the refresh token, the device is signed out
with `SignOutReason.userInitiated`, no `/logout` request is sent, and
`signOut` throws the new `AuthSessionsNotRevokedException`. It carries
the requested `scope` and the refresh error as `cause`, and its message
says to sign in again to revoke the other sessions.
- A transient refresh failure keeps the session and throws as before,
and an access token still inside its expiry margin is still used to
revoke.
- Registered `AuthSessionsNotRevokedException` as a supporting symbol of
`auth.session.sign_out`.
- Updated the `signOut` dartdoc, the `signOut()` section of
`MIGRATION.md` and the auth setup skill.

## Deviation from the review: a successful refresh is stored

The review asks for the refresh token to be kept in memory, with the
refreshed session not stored. This PR stores a successful refresh and
emits `tokenRefreshed`, like a regular refresh does. Only a failed
refresh stays in memory and emits nothing.

The reason is refresh token rotation. Once a refresh token has been
rotated, reusing it after the reuse interval (10 seconds by default)
makes t... (continued)

20 of 34 new or added lines in 2 files covered. (58.82%)

23 existing lines in 3 files now uncovered.

12520 of 13298 relevant lines covered (94.15%)

6.64 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
77.14
-15.45% packages/supabase_auth/lib/src/types/auth_exception.dart
2
93.53
-0.15% packages/supabase_auth/lib/src/auth_client.dart

Coverage Regressions

Lines Coverage ∆ File
14
96.96
-0.14% packages/supabase_realtime/lib/src/realtime_channel.dart
8
96.17
-0.05% packages/supabase_realtime/lib/src/realtime_client.dart
1
91.67
0.0% packages/supabase/lib/src/realtime_client_options.dart
Jobs
ID Job ID Ran Files Coverage
3 supabase_functions - 41066574325.3 30 Oct 2026 01:52PM UTC 4
94.01
GitHub Action Run
4 supabase_typegen - 41066574325.4 30 Oct 2026 01:54PM UTC 6
94.44
GitHub Action Run
5 supabase_flutter - 41066574325.5 30 Oct 2026 01:53PM UTC 16
89.03
GitHub Action Run
6 supabase_realtime - 41066574325.6 30 Oct 2026 01:55PM UTC 14
92.0
GitHub Action Run
7 supabase_auth - 41066574325.7 30 Oct 2026 01:57PM UTC 34
94.34
GitHub Action Run
8 iceberg - 41066574325.8 30 Oct 2026 01:52PM UTC 7
99.72
GitHub Action Run
9 supabase_storage - 41066574325.9 30 Oct 2026 01:54PM UTC 13
95.96
GitHub Action Run
10 supabase - 41066574325.10 30 Oct 2026 01:55PM UTC 21
94.52
GitHub Action Run
11 postgrest - 41066574325.11 30 Oct 2026 01:55PM UTC 30
92.81
GitHub Action Run
12 supabase_test - 41066574325.12 30 Oct 2026 01:52PM UTC 9
93.55
GitHub Action Run
2 supabase_common - 40911627463.2 29 Oct 2026 04:28PM UTC 37
94.39
GitHub Action Run
3 yet_another_json_isolate - 40346664947.3 26 Oct 2026 03:11PM UTC 2
98.65
GitHub Action Run
Source Files on build 41066574325
  • Tree
  • List 193
  • Changed 6
  • Source Changed 6
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #41066574325
  • f0844018 on github
  • Prev Build on main (#40930954513)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc