Supabase Realtime Not Working

Workaround available Web, server (all SDKs) Updated October 21, 2026

Quick answer

Usually the table isn't added to the supabase_realtime publication or RLS hides rows from the subscriber. Enable the table for Realtime and make sure the user has a SELECT policy.

Most likely fix: Add the table to the publication.

Symptoms

Channel reports SUBSCRIBED but no INSERT/UPDATE events arrive, or events arrive only for some users; connections drop on background tabs.

Why it happens

  • Table not in the supabase_realtime publication (off by default)
  • RLS: subscribing user can't SELECT the row
  • Wrong schema, table, event or filter
  • Writes made immediately after SUBSCRIBED are missed
  • Concurrent connection or message quota exceeded

How to fix it

Try these in order — the most common fix is first.

  1. 1. Add the table to the publication

    1. Dashboard > Database > Publications > supabase_realtime
    2. Toggle on your table
  2. 2. Check RLS for the subscriber

    1. Make sure a SELECT policy lets the authenticated user read those rows
    2. Test the select as that role, not as postgres
  3. 3. Verify filters

    1. Check schema, table, event ('*' to test) and .eq() filter values match the changed row
  4. 4. Log everything on a minimal channel

    1. Subscribe with event '*' and log payloads to isolate the problem
  5. 5. Check quotas

    1. Pro includes 500 concurrent connections and 5M messages; check Realtime usage in the dashboard

This guide also covers

  • supabase realtime not working
  • supabase postgres_changes not firing
  • supabase realtime subscription not receiving events
  • supabase realtime rls

Still not working?

If Supabase keeps failing, you're not alone. See every Supabase problem users report or the alternatives people switch to.

Other Supabase errors