Vercel Blob public URLs return 503 Service Unavailable while API is functional

Problem

All public Blob URLs in our production store return 503 SERVICE_UNAVAILABLE while the Blob API (blob.vercel-storage.com) works perfectly. This means files exist and can be listed/uploaded via the API, but cannot be served to users.

Impact

  • All user-uploaded images (profile photos, gallery, event covers) are broken in production
  • New uploads succeed (files appear in the store via API) but cannot be displayed
  • Our entire production application at www.someonesplan.com is affected

Evidence

  1. Public URL returns 503:
curl -I "https://pywla5knjbnow7ji.public.blob.vercel-storage.com/Someonesplan/Profile/1/Gallery/22d4c53c-d5d2-4a37-a474-c775cbed24d8_gallery.jpg"

Error:

HTTP/1.1 503 Service Unavailable
X-Vercel-Error: SERVICE_UNAVAILABLE
X-Vercel-Id: arn1::hv68l-1773665836301-79216d192bde
Body: “The deployment is currently unavailable”

  1. API confirms the same file exists:
curl -H "Authorization: Bearer $BLOB_READ_WRITE_TOKEN" "https://blob.vercel-storage.com/?prefix=Someonesplan/Profile/1/Gallery/22d4c53c&limit=1"

Result:
HTTP 200 — returns file metadata (156904 bytes, uploaded 2026-03-16T12:48:32.000Z, content-type: image/jpeg)

What we verified

  • URL format follows https://<id>.public.blob.vercel-storage.com/ — correct
  • All uploads use access: 'public' — confirmed in code
  • Affects ALL blobs in the store, not specific files
  • Affects both old and newly uploaded files (tested with files uploaded today)
  • Tested from multiple locations — not region-specific
  • BLOB_READ_WRITE_TOKEN is valid (API calls succeed with it)
  • The error message “The deployment is currently unavailable” suggests a CDN/edge layer issue, not a storage issue

Request

Please investigate why the public serving layer for store pywla5knjbnow7ji is returning 503 while the underlying storage API is fully operational.

1 Like

Hi Operendia,

Your evidence points away from the app upload code and toward the public Blob serving path.

If the Blob API can list the object with HTTP 200, but the direct public URL returns:

503 SERVICE_UNAVAILABLE
X-Vercel-Error: SERVICE_UNAVAILABLE
Body: The deployment is currently unavailable

then this is not a normal “file missing” case. A missing blob would be a different kind of failure, and your URL format also matches the public Blob URL format Vercel documents:

I’d do one isolation test before escalating it as store-specific:

1. Create a brand-new public Blob store in the same team
2. Upload one tiny test image/text file with access: "public"
3. Open the returned public URL directly with curl -I

If the new store works but pywla5knjbnow7ji.public.blob.vercel-storage.com still returns 503 for every object, that strongly suggests the old store’s public serving layer is stuck or unavailable.

If the new store also returns 503, then I’d check whether the team/project is paused, blocked, or over a Blob usage limit, because that would affect serving even if the token can still perform some API operations.

The useful escalation summary would be:

Store ID: pywla5knjbnow7ji
Blob API list/upload: 200
Public blob URL: 503 SERVICE_UNAVAILABLE
Affects all blobs, old and new
Tested from multiple networks
Latest X-Vercel-Id:
Latest timestamp:
New public Blob store test result:
Team/project paused or usage-limit banner: yes/no

Do not post the BLOB_READ_WRITE_TOKEN, but the public blob URL, X-Vercel-Id, and timestamp are safe and useful for Vercel to correlate.