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

supabase / supabase-flutter
80%

Build:
DEFAULT BRANCH: main
Repo Added 19 Jan 2025 06:54AM UTC
Token z3GUkNtD1PDnCOWpuPvCMvjUB924F4R9N regen
Build 363 Last
Files 70
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

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • chore-review-actions
  • chore/add-agents-md-file
  • chore/bump-app_links
  • chore/code-reference
  • chore/coverage
  • chore/coverage-realtime
  • chore/coverage-source
  • chore/functions-coverage
  • chore/gotrue-coverage
  • chore/publish
  • chore/release
  • chore/setup-release-please
  • chore/supabase-coverage
  • chore/test-coverage
  • chore/update-examples
  • chore/upgrade-app-links
  • ci/storage
  • cleanup/remove-parens-fromJson
  • docs/error-codes
  • docs/fix-infra-typo-license-20250902-024002
  • docs/google-signin
  • docs/update-signinwithidtoken-providers-1259
  • feat-admin-oauth-update-list-19ca1
  • feat/add-examples-project
  • feat/add-force-function-region-query-param
  • feat/broadcast-replay-support
  • feat/cupertino
  • feat/custom-metadata
  • feat/facebook-sdk-example
  • feat/gotrue-get-claims
  • feat/issue-1158-debug-instrumentation
  • feat/oauth-admin-endpoints
  • feat/phone-2fa
  • feat/phone-mfa
  • feat/realtime-explicit-rest-call
  • feat/semantic-release-automation
  • feat/storage-download-query-params
  • feat/workflow-improvements
  • feat/workflow-phase4-developer-experience
  • feat/workflow-phase5-additional-improvements
  • fix-getclaims-token-decoding
  • fix-to-string
  • fix/app-links-method-removal
  • fix/ci-wasm-test-timeout
  • fix/dartio-usage
  • fix/deprecate
  • fix/empty-response
  • fix/functions-exception
  • fix/gotrue-web
  • fix/proactive-token-refresh-on-resume
  • fix/setup-presence-flag
  • fix/toJson-print
  • fix/web-hot-restart
  • grdsdev-patch-1
  • grdsdev/auth-token-refresh
  • grdsdev/flutter-auth-refresh-bug
  • grdsdev/resilient-decoding
  • guilherme/ci
  • guilherme/clibs-108-supabase-flutter-change-default-heartbeat-interval-to-25s
  • guilherme/clibs-120-supabase-flutter-send-standard-client-headers-on-all
  • guilherme/clibs-171-supabase-flutter-validate-uuid-on-admin-methods
  • guilherme/clibs-282-supabase-flutter-implement-linkidentity-with-oidc
  • guilherme/clibs-287-supabase-flutter-storageretrycontroller-causes-cant-finalize
  • guilherme/clibs-294-supabase-flutter-remove-providers-check-for-the
  • guilherme/clibs-379-supabase-flutter-implement-maxaffected-method
  • guilherme/clibs-99-supabase-flutter-remove-jwt-check-and-send-x-client-info
  • guilherme/feat-test
  • guilherme/generate-app-token
  • guilherme/remove-trailing-commas-rule
  • guilherme/sdk-230-supabase-flutter-use-dedicated-storage-host-for-storage-lib
  • guilherme/sdk-514-refreshsession-shouldnt-fail-because-currentsession-doesnt
  • guilherme/sdk-524-duplicate-sdk-522-for-flutter
  • guilherme/sdk-531-flutter-verify-optional-refs-handling-in-message
  • guilherme/sdk-614-fix-verifyotp-parameter-validation-for-otptyperecovery
  • guilherme/sdk-624-apply-reusable-ci-workflows-to-supabase-flutter
  • guilherme/sdk-627-flutter-sdk-getclaims-crashes-on-first-use-with-asymmetric
  • guilherme/sdk-640-fixrealtime-flutter-web-hot-restart-throws-typeerror-on
  • iat/add-x-provider
  • idempotent_initialization
  • main
  • null-check-operator-on-realtime-conn
  • refs/pull/1110/merge
  • release-please/bootstrap/default
  • revert-commit
  • shared_prefs_async
  • storage
  • test/web
  • unnecessary_current_user
  • upgrade-github-actions-node24
  • upgrade-github-actions-node24-general

16 Feb 2026 05:01PM UTC coverage: 80.366% (+0.02%) from 80.342%
22071478063

push

github

web-flow
fix(realtime): add explicit type cast to fix web hot restart TypeError (#1308)

* fix(realtime): add explicit type cast to fix web hot restart TypeError

Fixes TypeError when using RealtimeChannel.off() on Flutter web during hot restart.
JavaScript interop causes type inference to fail on .where().toList() chains,
returning List<dynamic> instead of List<Binding>, which fails type checks.

Root Cause:
- RealtimeChannel.off() at line 475-478 used .where().toList() without explicit casting
- RealtimeClient.remove() at line 332 had similar pattern
- During web hot restart, JS interop loses type information
- Assignment back to typed collections (Map<String, List<Binding>>, List<RealtimeChannel>) fails

Solution:
- Added .cast<Binding>() to RealtimeChannel.off() after .toList()
- Added .cast<RealtimeChannel>() to RealtimeClient.remove() after .toList()
- Follows existing pattern in realtime_presence.dart (lines 172, 177, 240, 303)
- Consistent with type safety improvements from commit 102595d

Acceptance Criteria:
- [x] The off() method successfully removes event bindings on Flutter web without type errors
- [x] Hot restart on Flutter web no longer throws TypeError
- [x] All existing tests pass (98 tests)
- [x] No breaking changes to public API
- [x] Type safety maintained across all platforms
- [x] Similar pattern in realtime_client.dart reviewed and fixed

Testing:
- Added test case documenting the web hot restart issue
- Verified all 98 tests pass in realtime_client package
- No functional changes, only type safety improvements

Linear: SDK-640
GitHub: https://github.com/supabase/supabase-flutter/issues/1307

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Update packages/realtime_client/test/channel_test.dart

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

10 of 10 new or added lines in 2 files covered. (100.0%)

3385 of 4212 relevant lines covered (80.37%)

2.71 hits per line

Relevant lines Covered
Build:
Build:
4212 RELEVANT LINES 3385 COVERED LINES
2.71 HITS PER LINE
Source Files on main
  • Tree
  • List 70
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
22071478063 main fix(realtime): add explicit type cast to fix web hot restart TypeError (#1308) * fix(realtime): add explicit type cast to fix web hot restart TypeError Fixes TypeError when using RealtimeChannel.off() on Flutter web during hot restart. JavaScrip... push 16 Feb 2026 05:06PM UTC web-flow github
80.37
22070800208 guilherme/sdk-640-fixrealtime-flutter-web-hot-restart-throws-typeerror-on Merge b36b5c54e into 2210192d5 Pull #1308 16 Feb 2026 04:43PM UTC web-flow github
80.37
22063286207 main ci(supabase_flutter): make WASM tests non-blocking (#1306) WASM tests have known infrastructure flakiness with 12+ minute loading timeouts in CI. This causes the entire job to fail due to timeout issues unrelated to code changes. Setting continu... push 16 Feb 2026 12:51PM UTC web-flow github
80.34
22063300236 guilherme/sdk-640-fixrealtime-flutter-web-hot-restart-throws-typeerror-on Merge 50c9fc8fd into 2210192d5 Pull #1308 16 Feb 2026 12:51PM UTC web-flow github
80.37
21399444637 guilherme/sdk-640-fixrealtime-flutter-web-hot-restart-throws-typeerror-on Merge fcad17747 into 333b23b46 Pull #1308 16 Feb 2026 09:44AM UTC web-flow github
80.37
21726351467 fix/proactive-token-refresh-on-resume Merge 4f5336668 into 333b23b46 Pull #1310 05 Feb 2026 08:03PM UTC web-flow github
80.21
21714666199 grdsdev/auth-token-refresh Merge e2506142a into 333b23b46 Pull #1309 05 Feb 2026 02:13PM UTC web-flow github
80.51
21714410406 grdsdev/auth-token-refresh Merge 3e9b53c08 into 333b23b46 Pull #1309 05 Feb 2026 02:06PM UTC web-flow github
80.51
21713639474 grdsdev/auth-token-refresh Merge 3d826b7b6 into 333b23b46 Pull #1309 05 Feb 2026 01:43PM UTC web-flow github
80.51
21685565380 grdsdev/auth-token-refresh Merge b5aba1b46 into 333b23b46 Pull #1309 04 Feb 2026 07:40PM UTC web-flow github
80.49
See All Builds (362)

Badge your Repo: supabase-flutter

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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