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

supabase / supabase-flutter / 28241867675
86%

Build:
DEFAULT BRANCH: main
Ran 26 Jun 2026 01:43PM UTC
Jobs 8
Files 80
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

26 Jun 2026 01:41PM UTC coverage: 85.619% (+0.03%) from 85.592%
28241867675

push

github

web-flow
fix(auth): recognize error query parameter in auth callback redirects (#1472)

## What

OAuth error redirects can arrive as query parameters without an
`error_description` (e.g. `?error=access_denied`), per [RFC 6749
§4.1.2.1](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.2.1)
where `error_description` is optional but `error` is required.

Previously these bare `?error=` redirects were silently dropped in two
places:

1. **`supabase_auth.dart` → `_isAuthCallbackDeeplink`** only matched
`error_description`, so a `?error=access_denied` deep link was never
recognized as an auth callback.
2. **`gotrue_client.dart` → `getSessionFromUrl`** only threw when
`error_description != null`, so even if the gate passed, a bare
`?error=` fell through to the misleading `"No access_token detected."`
instead of surfacing the actual OAuth error.

The result was that the user saw no feedback when an OAuth provider
returned an error without a description.

## Changes

- Widened the deep link gate to also match `error` and `error_code`.
- Made `getSessionFromUrl` throw for any of `error` / `error_code` /
`error_description`, with a fallback message when no description is
given. The `error` -> `code` and `error_code` -> `statusCode` mapping is
preserved.

## Tests

- `packages/gotrue/test/provider_test.dart`: new case for
`?error=access_denied&error_code=403` asserting the `AuthException`
carries the code and status.
- `packages/supabase_flutter/test/deep_link_test.dart`: new group
asserting a `?error=` deep link triggers `getSessionFromUrl` and
surfaces the `AuthException` on `onAuthStateChange`.

## Parity

Ports
[supabase-js#2407](https://github.com/supabase/supabase-js/pull/2407) to
Dart/Flutter.

Resolves SDK-1032 (and its duplicate SDK-1044).

2 of 3 new or added lines in 2 files covered. (66.67%)

1 existing line in 1 file now uncovered.

4108 of 4798 relevant lines covered (85.62%)

3.65 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
64.76
1.66% packages/supabase_flutter/lib/src/supabase_auth.dart

Coverage Regressions

Lines Coverage ∆ File
1
64.76
1.66% packages/supabase_flutter/lib/src/supabase_auth.dart
Jobs
ID Job ID Ran Files Coverage
6 supabase_flutter - 28241867675.6 26 Jun 2026 01:44PM UTC 11
77.99
GitHub Action Run
7 supabase - 28241867675.7 26 Jun 2026 01:43PM UTC 15
81.99
GitHub Action Run
8 gotrue - 28241867675.8 26 Jun 2026 01:45PM UTC 26
84.31
GitHub Action Run
4 functions_client - 27986095786.4 22 Jun 2026 09:45PM UTC 2
97.14
GitHub Action Run
7 yet_another_json_isolate - 27986095786.7 22 Jun 2026 09:45PM UTC 1
79.03
GitHub Action Run
8 realtime_client - 28190414303.8 25 Jun 2026 06:08PM UTC 11
88.5
GitHub Action Run
6 postgrest - 28231764812.6 26 Jun 2026 10:17AM UTC 9
84.31
GitHub Action Run
5 storage_client - 28160249676.5 25 Jun 2026 09:26AM UTC 5
92.97
GitHub Action Run
Source Files on build 28241867675
  • Tree
  • List 80
  • Changed 5
  • Source Changed 5
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28241867675
  • cb7e7e62 on github
  • Prev Build on main (#28231764812)
  • Next Build on main (#28245085940)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc