An existing file is visible in my private Blob store, but opening its dashboard-generated download URL fails.
Filename: COA-Cholesterol 95%-pine tree source.pdf
The generated URL encodes spaces but leaves the literal % unescaped:
Actual: //COA-Cholesterol%2095%-pine%20tree%20source.pdf Expected: //COA-Cholesterol%2095%25-pine%20tree%20source.pdf
Steps to reproduce
- Upload a PDF to a private Blob store with a filename containing spaces and %, such as test 95%-example.pdf.
- Locate it in the Vercel dashboard.
- Generate/open its download URL.
- Inspect the pathname and resulting error.
Actual behavior
- Chrome displays ERR_HTTP2_PROTOCOL_ERROR.
- Our application’s Blob retrieval returned 400 Bad Request.
- Diagnostic unauthenticated requests to the malformed path returned HTTP 400 over HTTP/1.1 and a protocol error over HTTP/2.
- Encoding the literal % as %25 changed the unauthenticated response to HTTP 403, consistent with private-storage authentication requirements. Private storage documentation Expected behavior
The dashboard should generate a correctly encoded pathname while preserving valid authorization parameters. An authorized download should work without renaming the file. Please investigate pathname encoding in dashboard download links and SDK URL construction. Malformed paths should also return an ordinary HTTP error rather than an HTTP/2 protocol error.