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

supabase / supabase-flutter / 27142833105
85%

Build:
DEFAULT BRANCH: main
Ran 08 Jun 2026 02:04PM UTC
Jobs 1
Files 72
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

08 Jun 2026 01:58PM UTC coverage: 80.439% (-0.02%) from 80.463%
27142833105

push

github

web-flow
fix(storage): handle null signedURL in createSignedUrls response (#1385)

## Summary

When a requested path does not exist, the Storage API returns
`"signedURL": null` for that item. The Flutter SDK was silently
producing broken URLs like `"${storageUrl}null"` with no way for callers
to detect the issue.

This is a backward-compatible reimplementation of #1356, using
[supabase/supabase-swift#958](https://github.com/supabase/supabase-swift/pull/958)
as the reference. Because Dart does not support method overloading
(unlike Swift's `@_disfavoredOverload`), the new preferred API gets the
name `createSignedUrlsResult` and the old one is deprecated — this will
be cleaned up in v3
([SDK-1002](https://linear.app/supabase/issue/SDK-1002)).

## Changes

- **`types.dart`**: Add `SignedUrlResult` sealed class with
`SignedUrlSuccess` and `SignedUrlFailure` subtypes — mirrors Swift's
`SignedURLResult` enum
- **`storage_file_api.dart`**:
- `createSignedUrl` now throws `StorageException` when the API returns a
null `signedURL` instead of producing a malformed string
- `createSignedUrls` is deprecated; it delegates to
`createSignedUrlsResult` and silently drops failures (matching Swift's
`compactMap` on the deprecated overload)
- New `createSignedUrlsResult` returns `List<SignedUrlResult>` — one
entry per requested path with a clear success/failure distinction
- **`test/basic_test.dart`**: Tests for the null `signedURL` throw,
mixed success/failure results, and deprecated drop behaviour

## Backward Compatibility

No breaking changes:
- `SignedUrl.signedUrl` stays `String` (non-nullable)
- `createSignedUrls` still compiles — callers get a deprecation hint
pointing to `createSignedUrlsResult`
- `createSignedUrl` throwing on null is a bug fix (previously it
returned a broken string)

## Testing

All 38 unit tests pass.

## Linear

Closes: [SDK-862](https://linear.app/supabase/issue/SDK-862)
v3 cleanup: [SDK-1002](https://linear.app/supabase/issue/SDK-1002)

🤖 Generated... (continued)

17 of 21 new or added lines in 2 files covered. (80.95%)

3553 of 4417 relevant lines covered (80.44%)

2.9 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
79.65
-2.43% packages/storage_client/lib/src/types.dart
Jobs
ID Job ID Ran Files Coverage
1 27142833105.1 08 Jun 2026 02:04PM UTC 72
80.44
GitHub Action Run
Source Files on build 27142833105
  • Tree
  • List 72
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27142833105
  • dd566b3b on github
  • Prev Build on main (#27132322998)
  • Next Build on main (#27145513842)
  • 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