Skip to main content
Vercel limits the request body of a Function to 4.5 MB. On a Reactive Resume installation hosted on Vercel, larger RPC requests, such as big file uploads or assistant attachments, are first uploaded to private Blob storage. The server then restores the original request and runs it with the usual authentication, validation and limits. The web app does this for you: it stages any RPC request body of 3 MiB or more, and sends smaller bodies directly. You only need this page if you write your own client for /api/rpc against a Vercel installation.

Scope

Protocol

1. Prepare

Tell the server what you are about to send.
Authenticate with an x-api-key header, an OAuth bearer token or a session cookie. If the request carries an Origin header, it must match the installation’s own origin. Response 200:
If you get 404, the installation doesn’t stage bodies (for example, it runs in Docker). Send the original request unchanged, and skip staging for later requests too.

2. Upload

Upload the exact body bytes to the URL from step 1.
Don’t send your Reactive Resume credentials to this URL. The body must be exactly size bytes, sent as application/octet-stream.

3. Finalize

Send the original request with an empty body and the staging reference in the x-resume-staged-body header:
Use the same path (including the query string) and the same user as in step 1. The server replaces the body with the staged bytes, sets Content-Type to the stored contentType, deletes the staged object and returns the normal RPC response.

Errors

A reference can’t be retried. If a finalize response is lost, check whether the change was saved before you stage and send the request again.