Feature Fix

Fix Supabase Storage Blocked in India

Supabase Storage relies on /storage/v1/ which is blocked by Indian ISPs. Here is what breaks, the impact on your users, and how to fix it with a one-line code change.


What breaks

The ISP block on *.supabase.co prevents all Supabase Storage operations. File uploads fail, file downloads time out, signed URLs cannot be generated, bucket listing returns errors, and image transformations are unreachable. Any feature in your app that depends on file storage - profile pictures, document uploads, media galleries - breaks completely.

Impact on your users

Users experience broken images (placeholder icons where photos should be), failed file uploads with no clear error message, download links that hang indefinitely, and media-heavy pages that load without any media content. Apps that rely heavily on Storage (like file-sharing tools or social platforms) become essentially unusable.

Why Storage is blocked

Indian ISPs (Jio, Airtel, BSNL, ACT Fibernet) are DNS-blocking all subdomains under *.supabase.co following a government order under Section 69A of the IT Act. This means every Supabase service endpoint is unreachable, including the /storage/v1/ path that Storage depends on.

The block is at the DNS level. Your ISP's DNS resolver returns incorrect IP addresses for Supabase domains, causing connections to time out or fail. Supabase itself is fully operational - the block is ISP-specific.

Technical details

Supabase Storage makes HTTP requests (and WebSocket connections for Realtime) to your Supabase project's /storage/v1/ endpoint. When DNS is poisoned:

DNS lookup for your-project.supabase.co returns a sinkhole IP or NXDOMAIN
HTTP requests to /storage/v1/ hang until timeout (10-30 seconds)
The Supabase JS client throws a network error or returns undefined
Your app displays error states, empty data, or infinite loading spinners

Affected ISPs

The following ISPs are confirmed to block Supabase Storage (along with all other Supabase services):

Fix Supabase Storage

Route Supabase Storage traffic through an unblocked domain. Your existing code stays almost identical — just swap the URL. Two options:

Recommended

Self-host your own proxy

Deploy a full-featured proxy on your own Cloudflare Workers account. Free, open-source, under 60 seconds.

terminal
npx create-jiobase

Guided setup: enter your Supabase URL, configure CORS, deploy. Supabase Storage + all other 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.

lib/storage.ts
import { createClient } from '@supabase/supabase-js'

// Proxied through JioBase - Storage works identically:
const supabase = createClient('https://myapp.jiobase.com', 'your-anon-key')

// Upload a file
const { data, error } = await supabase.storage
  .from('avatars')
  .upload('user-123/photo.jpg', file)

// Get a signed URL
const { data: url } = await supabase.storage
  .from('avatars')
  .createSignedUrl('user-123/photo.jpg', 3600)

Deploy and verify

Deploy your updated code and test from a blocked ISP (Jio, Airtel) to confirm Storage operations work through the proxy. Your anon key stays the same. Supabase Storage works identically through the proxy.

What stays the same

When you switch to a JioBase proxy URL, everything except the URL stays identical:

Your anon key stays the same
Your RLS policies are completely unaffected
Your database schema and data are untouched
Your Supabase dashboard continues to work normally
All other Supabase features (Auth, Storage, Realtime, Edge Functions) work through the same proxy

Frequently asked questions

Will large file uploads work through the proxy?

Yes. JioBase streams request and response bodies, so file uploads of any size work through the proxy. Cloudflare Workers handle streaming efficiently without buffering the entire file in memory.

Do signed URLs generated through the proxy work?

Yes. Signed URLs are generated server-side by Supabase and returned through the proxy. The URLs themselves point to your proxy domain, so they remain accessible to your users on blocked ISPs.

Will image transformations work?

Yes. Supabase Storage image transformations (resize, crop, format conversion) are handled server-side by Supabase. The proxy forwards the transformation parameters and returns the processed image.

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

Related pages