Skip to content

My upload is rejected (400 / 413)

Q: The deploy API answers 400 “Invalid upload” or 413. What’s wrong with my archive?

The deploy API only accepts a tar (optionally gzipped) of plain, rendered files. It rejects anything that could be unsafe to extract:

  • symlinks and hardlinks — ship the real files instead,
  • absolute paths or .. inside the archive,
  • device/special files.

Rules of thumb:

  • Your site must sit at the root of the archiveindex.html, not dist/index.html. deploy.sh does this correctly via tar -C dist ..
  • Limits: 200 MiB compressed upload (413 above that), 512 MiB uncompressed, 50,000 files.

A 409 instead means your site isn’t ready to receive deploys yet (it is still provisioning or suspended) — check its status in the dashboard.