Fix ERR_CONNECTION_TIMED_OUT with Supabase in India
Getting ERR_CONNECTION_TIMED_OUT when your app tries to connect to Supabase? Indian ISPs are DNS-blocking supabase.co. Here is what the error means, how to diagnose it, and how to fix it.
What this error means
ERR_CONNECTION_TIMED_OUT means your browser tried to connect to a server but the server did not respond within the timeout period. The connection attempt was made but no response was received. This is different from a DNS error - it means the DNS resolved to an IP address, but that IP address is either unreachable or intentionally dropping connections.
Why it happens in India
In India, this error appears when your ISP (Jio, Airtel, ACT) DNS-poisons *.supabase.co domains. Instead of returning the real Supabase server IP, your ISP's DNS returns a sinkhole IP - an address that either does not exist or intentionally drops all connections. Your browser resolves the domain to this sinkhole IP and tries to connect, but the connection hangs until it times out. This is why the error appears after a long delay (usually 10-30 seconds) rather than immediately.
What you see in the browser
When your ISP blocks Supabase, your browser shows this error because the DNS lookup or connection to *.supabase.co fails. The error appears in the browser console and sometimes as a visible page error if your app does not handle network failures gracefully.
ERR_CONNECTION_TIMED_OUT
Chrome / Edge browser error
Which ISPs trigger this error
This error can appear on any Indian ISP that blocks *.supabase.co. The confirmed ISPs include:
Diagnostic steps
Follow these steps to confirm whether the error is caused by ISP DNS blocking:
Check DNS resolution
nslookup your-project.supabase.coExpected: If blocked: returns an ISP-owned IP (e.g., 49.44.79.236 for Jio). If working: returns an AWS IP like 13.233.x.x
Compare with public DNS
nslookup your-project.supabase.co 8.8.8.8Expected: Should return the real Supabase IP (AWS). If this differs from step 1, your ISP is DNS-poisoning.
Test with curl and timeout
curl -m 5 -v https://your-project.supabase.co/rest/v1/ \
-H "apikey: YOUR_ANON_KEY" 2>&1Expected: If blocked: "Connection timed out after 5000 milliseconds". If working: HTTP 200 with JSON response.
Test on a different network
# Disconnect WiFi, use mobile data from a different ISP
# Or use a VPN like Cloudflare WARP
curl -m 5 https://your-project.supabase.co/rest/v1/ \
-H "apikey: YOUR_ANON_KEY"Expected: If the request succeeds on a different network, the issue is ISP-specific DNS blocking.
Understanding the root cause
The Indian government issued a blocking order under Section 69A of the IT Act that requires ISPs to block access to *.supabase.co. ISPs implement this by poisoning their DNS resolvers. When you query a blocked domain, instead of returning the real IP address, the ISP returns either a sinkhole IP (causing timeout) or NXDOMAIN (causing name resolution failure).
This is not a Supabase outage. Supabase's infrastructure is fully operational. The block exists only at the ISP level in India. Users outside India, or users on VPNs, can access Supabase normally.
Fix it with a reverse proxy
The permanent fix is to route your Supabase traffic through a domain that is not blocked. Two options:
Self-host your own proxy
Deploy a full-featured proxy on your own Cloudflare Workers account. Free, open-source, under 60 seconds.
npx create-jiobaseGuided setup: enter your Supabase URL, configure CORS, deploy. WebSocket + all 6 services included.
Learn more →Or use JioBase managed
Dashboard with analytics, rate limiting, and automatic updates. Sign up free, add your Supabase project, and swap one URL.
import { createClient } from '@supabase/supabase-js'
// Replace your Supabase URL with your proxy URL:
const supabase = createClient(
'https://your-proxy.workers.dev', // was: https://xyz.supabase.co
'your-anon-key' // stays the same
)Temporary workarounds (development only)
These workarounds can restore access on your own device for development, but they do not fix the issue for your end users:
Change DNS to 1.1.1.1 or 8.8.8.8
Works for your device only. Your users still use their ISP's DNS.
Use Cloudflare WARP or a VPN
Encrypts DNS queries and bypasses the block. Not a production solution - you cannot ask all users to install a VPN.
Frequently asked questions
Why does my Supabase app show ERR_CONNECTION_TIMED_OUT only in India?
Indian ISPs (Jio, Airtel, ACT, BSNL) are DNS-blocking *.supabase.co following a government ministry order under Section 69A. The DNS poisoning causes your browser to connect to a sinkhole IP that never responds, resulting in a connection timeout. Supabase infrastructure is fully operational - the block is at the ISP level.
Can I fix ERR_CONNECTION_TIMED_OUT by changing my DNS?
On your own device, yes - switching to Google DNS (8.8.8.8) or Cloudflare DNS (1.1.1.1) bypasses the poisoned DNS and restores access for development. But your end users on these ISPs will still see the error. For a production fix, you need a reverse proxy like JioBase that routes traffic through an unblocked domain.
Is ERR_CONNECTION_TIMED_OUT the same as ERR_NAME_NOT_RESOLVED?
No. ERR_NAME_NOT_RESOLVED means DNS could not find any IP for the domain at all. ERR_CONNECTION_TIMED_OUT means DNS returned an IP, but that IP did not respond. In the Indian ISP blocking case, you typically see ERR_CONNECTION_TIMED_OUT because the DNS returns a sinkhole IP that silently drops connections.
Fix your Supabase app in under 60 seconds
JioBase routes your Supabase traffic through Cloudflare's edge network. No VPN, no DNS hacks, no code rewrites. One command or one line change.
npx create-jiobase — deploy your own proxy on Cloudflare Workers