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

supabase / supabase-flutter / 39266875227
92%

Build:
DEFAULT BRANCH: main
Ran 19 Oct 2026 02:14PM UTC
Jobs 11
Files 163
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

19 Oct 2026 02:12PM UTC coverage: 91.957% (-0.006%) from 91.963%
39266875227

push

github

web-flow
fix(storage): harden resumable upload failure, cancel and record handling (#1985)

Follow-up to #1984 (SDK-2276) with fixes from a review of the resumable
upload code. #1984 was merged before these commits were pushed.

## Fixes

- **A failed upload keeps its handle.** Once its retries run out, an
upload that still has a record stays registered as live.
`resumeUpload(id, file)` now returns that same `ResumableUpload` and
resumes it, as documented. Before, it built a second handle, and the two
could send `PATCH` requests to one upload URL at the same time.
- **A failing record store no longer hangs an upload.** If removing the
record throws inside the failure handler, the error is logged at warning
level. Before, `_run` threw: `done` never completed, the status stayed
`uploading`, and every later `resume()` was silently skipped.
- **Cancel loses to a completed upload.** `cancel()` now waits for the
in-flight request before deciding. If the response that completes the
upload is already in, the upload completes, `done` returns the stored
object, and no `DELETE` is sent. Before, `done` failed with
`ResumableUploadCancelledException` for an object that was already
stored. While a cancel is pending, `pause()` and `resume()` do nothing,
and calling `cancel()` again returns the same future.
- **Unreadable records are kept.** Each stored record is parsed on its
own. One the package cannot read, such as a record written by a newer
version, is skipped and written back unchanged. Before, it dropped every
record after it, and the next save deleted them for good.
- **Signed uploads stay unauthenticated after a restart.**
`resumeUpload`, `resumeUploadBinary` and `discardResumableUpload` no
longer send the client's headers for a record that holds a signed upload
token, which matches how the upload was started.
- **One project ref derivation.** The record key and the session key
both come from a new `projectRef` helper in `supabase_common`.
- **Docs:** `fileOptions.he... (continued)

33 of 36 new or added lines in 3 files covered. (91.67%)

10084 of 10966 relevant lines covered (91.96%)

5.42 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
91.82
-0.21% packages/supabase_storage/lib/src/resumable_upload.dart
Jobs
ID Job ID Ran Files Coverage
2 supabase_functions - 39266875227.2 19 Oct 2026 02:14PM UTC 4
93.28
GitHub Action Run
3 postgrest - 39266875227.3 19 Oct 2026 02:17PM UTC 32
93.89
GitHub Action Run
4 supabase_common - 39266875227.4 19 Oct 2026 02:14PM UTC 23
87.98
GitHub Action Run
5 supabase_typegen - 39266875227.5 19 Oct 2026 02:14PM UTC 6
96.26
GitHub Action Run
6 supabase_storage - 39266875227.6 19 Oct 2026 02:16PM UTC 10
96.25
GitHub Action Run
7 iceberg - 39266875227.7 19 Oct 2026 02:14PM UTC 6
71.32
GitHub Action Run
8 supabase_flutter - 39266875227.8 19 Oct 2026 02:15PM UTC 16
80.61
GitHub Action Run
9 supabase_realtime - 39266875227.9 19 Oct 2026 02:17PM UTC 14
90.92
GitHub Action Run
10 supabase_auth - 39266875227.10 19 Oct 2026 02:18PM UTC 34
93.38
GitHub Action Run
11 supabase - 39266875227.11 19 Oct 2026 02:18PM UTC 17
94.28
GitHub Action Run
7 yet_another_json_isolate - 39234881764.7 19 Oct 2026 10:06AM UTC 1
98.44
GitHub Action Run
Source Files on build 39266875227
  • Tree
  • List 163
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39266875227
  • bec2d2db on github
  • Prev Build on main (#39264869603)
  • Next Build on main (#39269728642)
  • 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