Skip to content

Error codes

Every Prova API error has a stable error machine code and a human-readable detail. Match on error in code, surface detail to humans.

json
{ "error": "rate_limited", "detail": "Daily quota of 1024 MB reached.", "used": 1073741824, "limit": 1073741824 }

Authentication

errorStatusMeaning
no_token401No Authorization: Bearer … header
invalid_token401Token malformed, signature failed, or expired
revoked_token401Token was revoked via /api/tokens/revoke
insufficient_scope403Token doesn't include the scope this endpoint requires

Validation

errorStatusMeaning
invalid_email400Email regex didn't match
invalid_jti400jti body field missing or malformed
invalid_cid400cid query param malformed (must match ^[a-z0-9]{8,80}$)
invalid_json400Body isn't valid JSON

Limits

errorStatusMeaning
too_large413File exceeds the tier's per-file limit
rate_limited429Sponsored daily IP cap hit
quota_exceeded429Authenticated user's daily quota hit

Storage

errorStatusMeaning
no_body400Upload body is empty
empty_body400Body present but zero bytes
stage_failed502Upstream prover rejected the upload
storage_offline503No storage backend bound (configuration error)

Operational

errorStatusMeaning
auth_offline503Token signing key not configured
not_found404The requested resource (cid / token / file) doesn't exist or doesn't belong to you
method_not_allowed405Wrong HTTP method on this path

Reporting an issue

If you hit an error code that isn't documented here, or a code that doesn't match its description, file an issue with:

  • the request URL and method
  • the request headers (sanitize the token!)
  • the response status + body
  • the timestamp (UTC)

We aim to respond within 24h on weekdays.

Apache-2.0 OR MIT.