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

supabase / supabase-flutter / 39266875227 / 9
92%
main: 92%

Build:
DEFAULT BRANCH: main
Ran 19 Oct 2026 02:19PM UTC
Files 14
Run time 0s
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: 90.922%. Remained the same
39266875227.9

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)

1332 of 1465 relevant lines covered (90.92%)

4.7 hits per line

Source Files on job supabase_realtime - 39266875227.9
  • Tree
  • List 14
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 39266875227
  • bec2d2db on github
  • Prev Job for on main (#39264869603.9)
  • Next Job for on main (#39269728642.8)
  • 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