feat(realtime): allow httpSend to send binary payload#2400
Conversation
@supabase/auth-js
@supabase/functions-js
@supabase/postgrest-js
@supabase/realtime-js
@supabase/storage-js
@supabase/supabase-js
commit: |
9d9a209 to
6d1b289
Compare
It uses the new single broadcast API
6d1b289 to
7e5f9f5
Compare
This PR updates @supabase/*-js libraries to version 2.107.0. **Source**: manual **Changes**: - Updated @supabase/supabase-js to 2.107.0 - Updated @supabase/auth-js to 2.107.0 - Updated @supabase/realtime-js to 2.107.0 - Updated @supabase/postgest-js to 2.107.0 - Refreshed pnpm-lock.yaml --- ## Release Notes ## v2.107.0 ## 2.107.0 (2026-06-02) ### 🚀 Features - **auth:** remove navigator.locks-based mutex; introduce commit guard + dispose() ([#2392](supabase/supabase-js#2392)) - **realtime:** allow httpSend to send binary payload ([#2400](supabase/supabase-js#2400)) - **supabase:** update X-Client-Info to structured metadata format ([#2359](supabase/supabase-js#2359)) ### 🩹 Fixes - **auth:** return AuthInvalidJwtError from getClaims for expired JWT ([#2395](supabase/supabase-js#2395)) - **auth:** recognize ?error= redirects in implicit grant gate ([#2407](supabase/supabase-js#2407)) - **auth): revert fix(auth:** encode client-id in oauth requests ([#2383](supabase/supabase-js#2383), [#2417](supabase/supabase-js#2417)) - **postgrest:** return a structured error for non-JSON body on successful responses ([#2398](supabase/supabase-js#2398)) - **release:** pin workspace:* sibling deps before JSR publish ([#2418](supabase/supabase-js#2418)) - **release:** publish gotrue-js legacy mirror via pnpm ([#2419](supabase/supabase-js#2419)) ### ❤️ Thank You - Claude Opus 4.7 (1M context) - Claude Sonnet 4.6 - Eduardo Gurgel - Guilherme Souza - Katerina Skroumpelou @mandarini - Omar Al Matar @Bewinxed - youcef zr @youcefzemmar - youcefzemmar This PR was created automatically. Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
This PR updates @supabase/*-js libraries to version 2.107.0. **Source**: manual **Changes**: - Updated @supabase/supabase-js to 2.107.0 - Updated @supabase/auth-js to 2.107.0 - Updated @supabase/realtime-js to 2.107.0 - Updated @supabase/postgest-js to 2.107.0 - Refreshed pnpm-lock.yaml --- ## Release Notes ## v2.107.0 ## 2.107.0 (2026-06-02) ### 🚀 Features - **auth:** remove navigator.locks-based mutex; introduce commit guard + dispose() ([#2392](supabase/supabase-js#2392)) - **realtime:** allow httpSend to send binary payload ([#2400](supabase/supabase-js#2400)) - **supabase:** update X-Client-Info to structured metadata format ([#2359](supabase/supabase-js#2359)) ### 🩹 Fixes - **auth:** return AuthInvalidJwtError from getClaims for expired JWT ([#2395](supabase/supabase-js#2395)) - **auth:** recognize ?error= redirects in implicit grant gate ([#2407](supabase/supabase-js#2407)) - **auth): revert fix(auth:** encode client-id in oauth requests ([#2383](supabase/supabase-js#2383), [#2417](supabase/supabase-js#2417)) - **postgrest:** return a structured error for non-JSON body on successful responses ([#2398](supabase/supabase-js#2398)) - **release:** pin workspace:* sibling deps before JSR publish ([#2418](supabase/supabase-js#2418)) - **release:** publish gotrue-js legacy mirror via pnpm ([#2419](supabase/supabase-js#2419)) ### ❤️ Thank You - Claude Opus 4.7 (1M context) - Claude Sonnet 4.6 - Eduardo Gurgel - Guilherme Souza - Katerina Skroumpelou @mandarini - Omar Al Matar @Bewinxed - youcef zr @youcefzemmar - youcefzemmar This PR was created automatically. Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
This PR updates `@supabase/supabase-js` to v2.107.0. **Source**: manual --- ## Release Notes ## v2.107.0 ## 2.107.0 (2026-06-02) ### 🚀 Features - **auth:** remove navigator.locks-based mutex; introduce commit guard + dispose() ([#2392](supabase/supabase-js#2392)) - **realtime:** allow httpSend to send binary payload ([#2400](supabase/supabase-js#2400)) - **supabase:** update X-Client-Info to structured metadata format ([#2359](supabase/supabase-js#2359)) ### 🩹 Fixes - **auth:** return AuthInvalidJwtError from getClaims for expired JWT ([#2395](supabase/supabase-js#2395)) - **auth:** recognize ?error= redirects in implicit grant gate ([#2407](supabase/supabase-js#2407)) - **auth): revert fix(auth:** encode client-id in oauth requests ([#2383](supabase/supabase-js#2383), [#2417](supabase/supabase-js#2417)) - **postgrest:** return a structured error for non-JSON body on successful responses ([#2398](supabase/supabase-js#2398)) - **release:** pin workspace:* sibling deps before JSR publish ([#2418](supabase/supabase-js#2418)) - **release:** publish gotrue-js legacy mirror via pnpm ([#2419](supabase/supabase-js#2419)) ### ❤️ Thank You - Claude Opus 4.7 (1M context) - Claude Sonnet 4.6 - Eduardo Gurgel - Guilherme Souza - Katerina Skroumpelou @mandarini - Omar Al Matar @Bewinxed - youcef zr @youcefzemmar - youcefzemmar ## v2.106.2 ## 2.106.2 (2026-05-25) ### 🩹 Fixes - **auth:** restore signup user response ([#2391](supabase/supabase-js#2391)) - **misc:** add react-native export condition for Hermes-safe resolution ([#2393](supabase/supabase-js#2393)) ### ❤️ Thank You - Myroslav Hryhschenko @BLOCKMATERIAL - Vaibhav @7ttp This PR was created automatically. Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
|
After updating to 2.107.0 from 2.106.2 today we encountered multiple issues from this change. Broadcast did not work on local development, seemingly because the CLI based realtime server did not have the new endpoint. More problematic was that while the endpoint seemingly exists on the production Supabase, no event was received on the clientside. Downgrading to 2.106.2 fixed it. It's likely I missed something, but this cost me a few hours, so mentioning this in case others run into the same. |
|
Hey @holm, apologies for this issue. You are right and we should've probably waited for the CLI to have on its stable version the Realtime version v2.97.3 or greater for a longer time. It's currently on To unblock your client update you can upgrade your supabase CLI to the latest stable or tweak your docker compose with the Realtime version being at least Will discuss with the team to find out an easier way for this sort of upgrade to not trip people like it did for you. |
|
Hi @holm, I believe the two symptoms have different causes: For the local 404: We've tightened the client-side error message so the 404 case now points at this directly. For the production silent drop: were the broadcasts |
|
Hi @holm we applied a fix in our gateway to ensure that the appropriate responses are returned in production. If you end up trying again please let us know if you have any issues 🙏 |
|
Sorry, I missed the replies here in the usual Github email storm. Let me try it all again and ensure I have the latest versions. I realised it was also easy to miss an update to a running local Supabase after updating the CLI, so I made a few scripts to better ensure latest versions of the images. |
|
@holm if you see an issue, can you please open a new issue? It will be super helpful! Thank you!!! 💚 |
🔍 Description
It uses the new single broadcast API to send JSON or binary payloads.
I had to pin the realtime version for now until CLI has updated the realtime version.
What changed?
Why was this change needed?
Closes #(issue_number)
📸 Screenshots/Examples
🔄 Breaking changes
📋 Checklist
<type>(<scope>): <description>pnpm nx formatto ensure consistent code formatting📝 Additional notes