Supabase ERR_CONNECTION_TIMED_OUT in India: What It Means and How to Fix It
Getting timeout errors with Supabase in India? Your ISP is blocking the connection. Here is exactly why it happens and how to fix it.
What ERR_CONNECTION_TIMED_OUT means
ERR_CONNECTION_TIMED_OUT means your browser (or app) tried to establish a TCP connection to a server and received no response within the timeout window. The request was sent, but nobody answered.
This is different from a ERR_CONNECTION_REFUSED (the server actively rejected the connection) or a ERR_NAME_NOT_RESOLVED (DNS lookup failed entirely). With a timeout, DNS resolved to some IP address, but that IP either does not exist, is unreachable, or is deliberately dropping packets.
In the case of Supabase in India, the timeout happens because your ISP's DNS resolver returns a sinkhole IP address instead of Supabase's real server. Your browser connects to the sinkhole, which silently drops the connection.
Why this happens in India
Indian ISPs including Jio, Airtel, and ACT Fibernet are DNS-poisoning all *.supabase.co domains. When your app tries to resolve a Supabase domain, the ISP intercepts the DNS query and returns a fake IP address.
Here is what the normal flow looks like versus the blocked flow:
NORMAL FLOW (outside India / unblocked ISP):
Browser ISP DNS Supabase
| | |
|--- DNS query -------->| |
| abcd.supabase.co | |
| | |
|<-- Real IP ----------| |
| 104.18.x.x | |
| | |
|--- HTTPS request --------------------------->|
| |
|<-- 200 OK ----------------------------------|
BLOCKED FLOW (Jio / Airtel / ACT in India):
Browser ISP DNS Sinkhole Supabase
| | | |
|--- DNS query -------->| | |
| abcd.supabase.co | | |
| | | |
|<-- Fake IP ----------| | |
| 49.44.x.x | | |
| | | |
|--- HTTPS request -------->| | |
| | (drops) | |
| | | |
|... waiting ... | | |
|... waiting ... | | |
| | | |
X ERR_CONNECTION_TIMED_OUT | | |The ISP never lets your request reach Supabase. It silently redirects you to a dead-end IP, and your connection hangs until the browser gives up.
How to confirm it is an ISP block
Run these commands from your terminal to diagnose the issue:
Step 1: Check what IP your DNS returns
# Using your ISP's DNS (likely poisoned):
$ nslookup yourproject.supabase.co
Server: 198.18.0.1
Address: 198.18.0.1#53
Name: yourproject.supabase.co
Address: 49.44.79.236 # Sinkhole IP - NOT Supabase
# Using Cloudflare DNS (should return real IP):
$ nslookup yourproject.supabase.co 1.1.1.1
Server: 1.1.1.1
Address: 1.1.1.1#53
Name: yourproject.supabase.co
Address: 104.18.x.x # Real Supabase IPIf the two lookups return different IPs, your ISP is poisoning DNS for Supabase domains.
Step 2: Test connectivity with curl
# This will time out on blocked ISPs:
$ curl -v --max-time 10 https://yourproject.supabase.co/rest/v1/
* Connection timed out after 10001 milliseconds
curl: (28) Connection timed out
# Force curl to use the real IP via Cloudflare DNS:
$ curl -v --max-time 10 --resolve yourproject.supabase.co:443:104.18.x.x \
https://yourproject.supabase.co/rest/v1/
HTTP/2 200 # Works when bypassing ISP DNSIf curl times out normally but works when you force the real IP, the block is confirmed. Your ISP is intercepting DNS queries for *.supabase.co.
Quick test: try a different network
The fastest way to confirm it is an ISP block: connect to a different network and try again.
Mobile hotspot: If you are on Jio broadband, try using an Airtel mobile hotspot (or vice versa). If one works and the other does not, it is an ISP-specific block.
VPN: Enable any VPN and try the request again. If it works with VPN enabled, the block is at the ISP level.
Ask a friend abroad: Have someone outside India try accessing your Supabase project URL. If it works for them, the block is India-specific.
The wrong fixes
These workarounds appear in every forum thread but none of them solve the problem for production apps:
Only fixes your local machine. Does not help your end users. Some ISPs also use DPI to block connections regardless of DNS resolution.
Adds 50-200ms latency, costs money, and requires every user to install one. Not viable for a production app serving hundreds or thousands of users.
Firebase is already blocked on BSNL. Other providers could be next. Migrating your entire backend does not solve the underlying DNS blocking problem.
The right fix: reverse proxy
The solution is to route your Supabase traffic through a domain that is not blocked. A reverse proxy on Cloudflare's edge network receives your requests on an unblocked domain and forwards them to Supabase on the server side, where there is no ISP block.
JioBase is a managed reverse proxy built specifically for this. Set it up in three steps:
Create a JioBase account
Sign up at jiobase.com/register. Free tier includes 50,000 requests per month.
Create a proxy app
Enter your Supabase project URL and pick a slug. You get a proxy URL like myapp.jiobase.com.
Swap the URL in your code
Replace https://yourproject.supabase.co with https://myapp.jiobase.com. Deploy. Done.
Code example: before and after
Before (times out on Indian ISPs):
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
'https://abcdefgh.supabase.co',
process.env.SUPABASE_ANON_KEY
)After (works everywhere):
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
'https://myapp.jiobase.com', // proxy URL
process.env.SUPABASE_ANON_KEY // same key
)No other changes needed. The Supabase JS client sends standard HTTP requests to whatever URL you give it. Auth, Storage, Realtime, Edge Functions -- everything works the same through the proxy.
Technical details: how the proxy works
JioBase runs as a Cloudflare Worker deployed across 300+ edge locations worldwide. When a request arrives:
- 1 Your user's browser resolves
myapp.jiobase.comusing their ISP's DNS. Sincejiobase.comis not blocked, this resolves to a Cloudflare IP normally. - 2 The HTTPS request hits the nearest Cloudflare edge node. The Worker looks up which Supabase project is mapped to this slug.
- 3 The Worker rewrites the URL from
myapp.jiobase.com/rest/v1/...toabcdefgh.supabase.co/rest/v1/...and forwards the request server-side. - 4 Cloudflare's servers are not subject to Indian ISP DNS blocks. The request reaches Supabase normally.
- 5 The response flows back through Cloudflare to the user. Total added latency: 1-5ms.
For WebSocket connections (Supabase Realtime), the Worker performs a WebSocket upgrade and maintains a persistent bidirectional connection between the client and Supabase, proxying frames in both directions.
Frequently Asked Questions
Is this error only happening in India?
The ISP-level DNS block on *.supabase.co is specific to Indian ISPs (Jio, Airtel, ACT Fibernet, and potentially others). If you are getting ERR_CONNECTION_TIMED_OUT outside India, it may be a different issue -- check your Supabase project status and network configuration.
My app was working yesterday. Why did it suddenly break?
ISP blocks can be rolled out gradually. Different ISPs implement the block at different times, and some regions within the same ISP may be affected before others. If your app was working on a particular ISP and suddenly stopped, that ISP likely just implemented the block in your area.
Will the proxy add latency to my API calls?
Minimal. JioBase runs on Cloudflare's edge network with 300+ locations worldwide. The proxy adds roughly 1-5ms of overhead per request. This is negligible compared to the 50-200ms a VPN adds, and infinitely better than a complete timeout.
Can I self-host a proxy instead of using JioBase?
Yes. We provide a free Worker Generator Tool that creates a ready-to-deploy Cloudflare Worker for basic HTTP proxying. The self-hosted version does not include WebSocket support, analytics, or rate limiting.
Fix your Supabase app in under 60 seconds
Stop fighting timeout errors. Route through an unblocked domain and get back to building.
npx create-jiobase — deploy your own proxy on Cloudflare Workers for free
Suggested reading
More guides on Supabase, DNS blocks, and building resilient apps in India.
How to Test if Your Backend is Blocked by Indian ISPs
Step-by-step diagnostic guide to check if Supabase, Firebase, or any backend is being DNS-blocked.
Fix Supabase on Jio in 60 Seconds
Ultra-short, action-focused guide. No theory, no backstory - just the fix.
Why Is Supabase Banned in India? Section 69A Explained
Understanding Section 69A of the IT Act and how blocking orders work.