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

supabase / supabase-flutter / 32823468489
89%

Build:
DEFAULT BRANCH: main
Ran 25 Aug 2026 07:50AM UTC
Jobs 10
Files 120
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

25 Aug 2026 07:49AM UTC coverage: 88.64% (+0.04%) from 88.601%
32823468489

push

github

web-flow
fix(realtime): surface access-token provider errors on connect instead of logging and continuing (#1759)

## What kind of change does this PR introduce?

Bug fix.

## What is the current behavior?

When a custom `accessToken` provider throws while the realtime socket
connects, `_resolveAccessTokenAndFlush` logs `Error resolving access
token on connect` and flushes the send buffer anyway. The buffered
channel joins are then sent with whatever identity the socket already
has (typically the anon/publishable key), so a transient third-party
auth failure silently downgrades the connection instead of failing it.
The HTTP path already propagates these errors, and supabase-swift
adopted the same behavior citing supabase-flutter as the reference
implementation, so realtime was the odd one out.

## What is the new behavior?

A throwing access-token provider now fails the connect and surfaces the
error on both levels:

- Pending subscriptions receive a `channelError` status carrying the
provider's actual error through `RealtimeChannel.onStatusChange`.
- `RealtimeClient.onStatusChange` receives the error as a stream error,
consistent with other connection errors.
- The send buffer is kept unsent, so buffered joins are never flushed
with the wrong identity, and the connection is closed so the existing
reconnect backoff retries the provider on each attempt. Transient
provider failures self-heal, and a provider that returns `null` (no
signed-in user) still proceeds unauthenticated.

The errored-channel rejoin loop also moved from `_onConnectionOpen` to
after the token resolution, so rejoins always carry the resolved
identity. Previously an errored channel rejoined immediately on
reconnect with the stale payload, which both reintroduced the
wrong-identity join after a provider failure and, on the success path,
sent a stale join that was corrected by a second one.

A guard bails out of the error handling when a disconnect or reconnect
replaced the connection while the... (continued)

31 of 32 new or added lines in 1 file covered. (96.88%)

6024 of 6796 relevant lines covered (88.64%)

4.5 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
96.22
0.48% packages/supabase_realtime/lib/src/realtime_client.dart
Jobs
ID Job ID Ran Files Coverage
3 supabase_auth - 32823468489.3 25 Aug 2026 07:54AM UTC 30
90.69
GitHub Action Run
4 supabase - 32823468489.4 25 Aug 2026 07:54AM UTC 14
93.57
GitHub Action Run
5 supabase_storage - 32823468489.5 25 Aug 2026 07:53AM UTC 9
97.31
GitHub Action Run
6 supabase_realtime - 32823468489.6 25 Aug 2026 07:53AM UTC 13
90.36
GitHub Action Run
7 supabase_flutter - 32823468489.7 25 Aug 2026 07:51AM UTC 11
82.22
GitHub Action Run
8 postgrest - 32823468489.8 25 Aug 2026 07:52AM UTC 11
84.59
GitHub Action Run
9 supabase_functions - 32823468489.9 25 Aug 2026 07:50AM UTC 4
97.83
GitHub Action Run
10 iceberg - 32823468489.10 25 Aug 2026 07:50AM UTC 6
68.52
GitHub Action Run
8 supabase_common - 32709892111.8 24 Aug 2026 09:09AM UTC 21
86.96
GitHub Action Run
2 yet_another_json_isolate - 32488229193.2 21 Aug 2026 01:43PM UTC 1
98.44
GitHub Action Run
Source Files on build 32823468489
  • Tree
  • List 120
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32823468489
  • bb4b58cf on github
  • Prev Build on main (#32821480584)
  • Next Build on main (#32824434652)
  • 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