Is Supabase Realtime Down Right Now?

Supabase Realtime handles WebSocket connections for live updates. It operates independently from the database — Realtime can go down while your DB stays up.

Updated May 2026

Staff Pick

📡 Monitor your APIs — know when they go down before your users do

Better Stack checks uptime every 30 seconds with instant Slack, email & SMS alerts. Free tier available.

Start Free →

Affiliate link — we may earn a commission at no extra cost to you

How to Check If Supabase Realtime Is Down

  1. 1. Visit status.supabase.com → look for "Realtime" component specifically
  2. 2. Check @supabase on X for incident announcements
  3. 3. In browser DevTools → Network → Filter by WS (WebSockets) → look for failed handshakes to realtime.*.supabase.co
  4. 4. Try a minimal Realtime connection test (code below) to isolate if it's your code or the service

Quick Realtime Connection Test

Run this minimal test in your browser console (or a test file) to isolate whether Supabase Realtime is reachable:

import { createClient } from '@supabase/supabase-js'

const supabase = createClient(
  process.env.NEXT_PUBLIC_SUPABASE_URL,
  process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY
)

// Minimal Realtime connection test
const channel = supabase.channel('connection-test')
  .subscribe((status) => {
    console.log('Realtime status:', status)
    // 'SUBSCRIBED' = working
    // 'CHANNEL_ERROR' = auth/config issue
    // 'TIMED_OUT' = network/service issue
    // 'CLOSED' = connection refused
  })

// Clean up after 5 seconds
setTimeout(() => {
  supabase.removeChannel(channel)
}, 5000)

If you see TIMED_OUT or CLOSED after 10 seconds and status.supabase.com shows Realtime operational, the issue is likely your network or firewall.

How Supabase Realtime Works

Supabase Realtime is a separate Elixir/Phoenix service (open-source, separate from the Postgres database). It connects to your Postgres database via WAL (Write-Ahead Log) replication for Postgres Changes, and handles WebSocket connections from clients independently.

Broadcast

Send messages between clients. No DB required. Phoenix PubSub under the hood.

Most reliable — no DB dependency

Presence

Track connected users. Built on Broadcast.

Reliable — stateless per connection

Postgres Changes

Live DB updates via WAL replication.

Most complex — DB + Realtime + WAL

📡
Recommended

Monitor your Supabase-backed app's uptime

Better Stack catches API and WebSocket failures before your users notice. Set up alerts for your Supabase endpoints in 2 minutes.

Try Better Stack Free →

Common Supabase Realtime Issues

Postgres Changes not firing

Cause: Realtime not enabled for the table in Dashboard → Database → Replication

Fix: Enable table in Supabase dashboard or via SQL: ALTER PUBLICATION supabase_realtime ADD TABLE your_table

RLS blocking Realtime updates

Cause: Row Level Security policies prevent Realtime from reading the table

Fix: Add SELECT policy for authenticated users or the service role

WebSocket connection fails immediately

Cause: Anon key is incorrect or project is paused

Fix: Verify SUPABASE_ANON_KEY from dashboard; restore project if paused

Subscription connects but never fires

Cause: Filter expression incorrect or no matching rows change

Fix: Start without filters first (listen to all changes), then add filters once working

Connection limit exceeded

Cause: Too many concurrent Realtime connections for your plan

Fix: Upgrade plan or reduce connections by multiplexing subscriptions on one channel

Debugging Supabase Realtime Step by Step

Step 1: Check status.supabase.com

The Realtime component shows separately from Database and Auth. A Realtime outage means all WebSocket subscriptions across all projects in that region are affected.

Step 2: Enable table for Realtime

In the Supabase dashboard: Database → Replication → toggle on the table. Or run: ALTER PUBLICATION supabase_realtime ADD TABLE public.your_table;

Step 3: Check RLS policies

If your table has RLS enabled, the Realtime service needs SELECT access. Test by temporarily disabling RLS on the table (in dev only) and see if subscriptions start firing.

Step 4: Add reconnection handlers

The Supabase JS client reconnects automatically, but your subscriptions need to be re-registered after reconnection. Use the SUBSCRIBED status event to re-fetch any data missed during the disconnect window.

Alert Pro

14-day free trial

Stop checking — get alerted instantly

Next time Supabase Realtime goes down, you'll know in under 60 seconds — not when your users start complaining.

  • Email alerts for Supabase Realtime + 9 more APIs
  • $0 due today for trial
  • Cancel anytime — $9/mo after trial

Related Developer Guides

Frequently Asked Questions

Is Supabase Realtime down right now?

To check if Supabase Realtime is down, visit status.supabase.com and look specifically for the "Realtime" component — it reports separately from the database and Auth services. Supabase Realtime incidents often affect specific regions without affecting the database service. You can also check the Supabase GitHub Realtime repository issues and @supabase on X for incident announcements. Note that Supabase Realtime being down does NOT affect your database reads/writes — only WebSocket-based live updates.

Why are my Supabase Realtime subscriptions not receiving updates?

Supabase Realtime subscription failures have several common causes: (1) Realtime not enabled for the table — check Supabase dashboard → Database → Replication and toggle on the table, (2) RLS policies blocking Realtime — if Row Level Security is enabled, the authenticated user must have SELECT access to the table for Realtime to work, (3) Project paused (free tier) — paused projects disconnect all WebSockets, (4) Filter expression error — incorrect filter syntax in your subscription, (5) Supabase Realtime service outage — check status.supabase.com. Test with a simple channel subscription first to isolate the issue.

What is the difference between Supabase Broadcast, Presence, and Postgres Changes?

Supabase Realtime has three core features: (1) Broadcast — send arbitrary messages between clients via a shared channel (like Socket.io rooms). No database involved — pure WebSocket pub/sub. Best for chat, cursor positions, collaborative editing. (2) Presence — track who is connected to a channel. Built on Broadcast. Best for online user lists, "typing..." indicators. (3) Postgres Changes — listen to INSERT/UPDATE/DELETE events on specific database tables. Backed by Postgres logical replication (WAL). Best for live dashboards, feed updates. Each has separate status on the Supabase status page.

Why is Supabase Realtime disconnecting repeatedly?

Repeated Supabase Realtime disconnections are usually caused by: (1) Network instability — WebSockets require persistent connections; mobile and VPN users disconnect frequently, (2) Supabase free tier connection limits — free plan allows up to 200 concurrent Realtime connections, (3) Client-side memory pressure causing the WebSocket to be garbage collected, (4) JWT token expiration — the Realtime connection token expires and is not refreshed, (5) Server-side Realtime service instability — check status.supabase.com. Implement reconnection logic: the Supabase JS client handles reconnection automatically, but you should re-subscribe to channels after reconnect events.

How many concurrent Realtime connections does Supabase allow?

Supabase Realtime concurrent connection limits: Free plan = 200 concurrent connections, Pro plan = 500 concurrent connections, Team plan = 1,000 concurrent connections, Enterprise = custom. Each browser tab using Realtime counts as one connection. For high-scale apps, use channel multiplexing (multiple subscriptions on one channel) rather than opening multiple channels per user. Exceeding the limit causes new connections to be rejected — existing connections remain open.

🛠 Tools We Use & Recommend

Tested across our own infrastructure monitoring 200+ APIs daily

Better StackBest for API Teams

Uptime Monitoring & Incident Management

Used by 100,000+ websites

Monitors your APIs every 30 seconds. Instant alerts via Slack, email, SMS, and phone calls when something goes down.

We use Better Stack to monitor every API on this site. It caught 23 outages last month before users reported them.

Free tier · Paid from $24/moStart Free Monitoring
1PasswordBest for Credential Security

Secrets Management & Developer Security

Trusted by 150,000+ businesses

Manage API keys, database passwords, and service tokens with CLI integration and automatic rotation.

After covering dozens of outages caused by leaked credentials, we recommend every team use a secrets manager.

SEMrushBest for SEO

SEO & Site Performance Monitoring

Used by 10M+ marketers

Track your site health, uptime, search rankings, and competitor movements from one dashboard.

We use SEMrush to track how our API status pages rank and catch site health issues early.

From $129.95/moTry SEMrush Free
View full comparison & more tools →Affiliate links — we earn a commission at no extra cost to you