My PWA’s audio streaming suddenly broke after 5 weeks of stable operation. I’m seeing 416 Range Not Satisfiable and 403 Forbidden errors specifically on MP3 files stored in Vercel Private Blobs.
Key Observations:
Download vs. Streaming: Files are playable when downloaded but fail when i press the play button in the Vercel Storage Dashboard.
Dashboard Failure: Even the internal Vercel Storage Dashboard player fails to play these private blobs.
MIME-Type Mismatch: I think some affected files are being served with Content-Type: application/octet-stream despite having .mp3 extensions.
Range Requests: Browser Range: bytes=0- requests are being rejected by the Edge network with a 416 status.
→ Why is the Dashboard player itself unable to authorize its own assets for streaming? I’m really confused…
Current: MP3 audio files stored in Vercel Private Blobs have suddenly stopped streaming. While downloading the files works perfectly, playing them via the play button it fails. Browsers report 416 Range Not Satisfiable or 403 Forbidden errors (see screenshot below)
Expected: Audio files should stream normally, supporting Byte-Range requests for seeking and buffering, as they did for the past 5 weeks without issues.
Storage Setup: Files are stored as Private Blobs.
Access Method: A serverless function acts as a proxy to fetch the blob using the BLOB_READ_WRITE_TOKEN.
Observation: Inspecting the Network tab shows that some files are being served with Content-Type: application/octet-stream instead of audio/mpeg.
The Error: When the browser sends a Range: bytes=0- header, the response is a 416 Range Not Satisfiable, effectively killing the stream.
Example Proxy Snippet:
TypeScript
// Basic logic used in our API route
const blob = await head(url, { token: process.env.BLOB_READ_WRITE_TOKEN });
// Streaming the blob content…
Framework: Next.js / React (PWA)
Environment: Production on Vercel
Storage: Vercel Blob (Private)
Timeline: Stable for 5 weeks, started failing recently without changing something in the Blob or the files.
I’ve looked through the forum for relevant threads but haven’t found anything, and I hope I haven’t missed a post where this has already been answered.
Thank you in advance for any help or advice. If you need any additional information, please let me know!
