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

supabase / supabase-flutter / 39951497819
93%

Build:
DEFAULT BRANCH: main
Ran 23 Oct 2026 12:13PM UTC
Jobs 9
Files 141
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

23 Oct 2026 12:11PM UTC coverage: 92.964%. First build
39951497819

push

github

web-flow
fix(iceberg)!: parse Supabase error bodies, add timeout and abort, and stop swallowing config errors (#2038)

Linear:
https://linear.app/supabase/issue/SDK-2349/fixiceberg-parse-supabase-error-bodies-add-timeout-and-abort-and-stop

Also covers item 2 of https://linear.app/supabase/issue/SDK-2347
(`analyticsCatalog` ignores the request timeout), which that ticket
defers to this one, and adds the `analyticsCatalog` wiring test from its
item 8.

## Changes

Each item of the ticket, with its regression tests in
`packages/iceberg/test/iceberg_test.dart`:

1. **Supabase error bodies.** `IcebergApiException.fromResponse` now
also reads the Supabase Storage body (`statusCode`, `code`, `error`,
`message`): the message comes from `message`, `errorCode` from `code`
(falling back to `error`) and `code` from `statusCode`. Fields of the
Iceberg envelope with an unexpected type no longer throw a cast error.
2. **Timeout, abort and retry.** `IcebergRestCatalog` takes
`requestTimeout` (idle timeout through the shared `IdleTimeout`,
surfacing as an `IcebergNetworkException` caused by a
`TimeoutException`) and `retryOptions` (the shared
`SupabaseRetryOptions`, retrying network failures and `503`/`520` like
PostgREST, including a `503` whose body fails to arrive). Every
operation takes a `Future<void>? abortSignal`.
`SupabaseStorageClient.analyticsCatalog` forwards the storage client's
`requestTimeout`.
- A write generates its `Idempotency-Key` once and every retry repeats
it. Writes are only retried when the `/v1/config` response advertises
`idempotency-key-lifetime`. A server that ignores the key could apply a
repeated write twice, which is the 409-after-retry problem SDK-2347
describes for storage uploads. Reads are always retried.
3. **Config errors.** A failed `/v1/config` request now fails the
operation with the server's error instead of falling back to
`v1/<warehouse>`. The failure is not cached, so the next operation
fetches the config again. Concurrent operation... (continued)

1 of 1 new or added line in 1 file covered. (100.0%)

9606 of 10333 relevant lines covered (92.96%)

6.32 hits per line

Jobs
ID Job ID Ran Files Coverage
1 supabase - 39951497819.1 23 Oct 2026 12:17PM UTC 20
93.83
GitHub Action Run
2 supabase_typegen - 39951497819.2 23 Oct 2026 12:14PM UTC 6
94.19
GitHub Action Run
3 postgrest - 39951497819.3 23 Oct 2026 12:17PM UTC 28
92.54
GitHub Action Run
4 supabase_storage - 39951497819.4 23 Oct 2026 12:16PM UTC 10
96.64
GitHub Action Run
5 supabase_test - 39951497819.5 23 Oct 2026 12:14PM UTC 9
92.31
GitHub Action Run
6 supabase_auth - 39951497819.6 23 Oct 2026 12:17PM UTC 34
93.44
GitHub Action Run
7 supabase_realtime - 39951497819.7 23 Oct 2026 12:16PM UTC 14
91.15
GitHub Action Run
8 supabase_functions - 39951497819.8 23 Oct 2026 12:13PM UTC 4
93.28
GitHub Action Run
9 supabase_flutter - 39951497819.9 23 Oct 2026 12:14PM UTC 16
80.52
GitHub Action Run
Source Files on build 39951497819
  • Tree
  • List 141
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39951497819
  • 6ea556d3 on github
  • Prev Build on main (#39948173703)
  • Next Build on main (#39954583778)
  • 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