Skip to content

Error codes

Every Postbag API error is { code, message, hint, docs }. This page lists each code, its HTTP status and the hint the API returns, so humans and agents can act on it.

Updated · Markdown

Every error response has the shape:

{ "error": { "code": "mapping_incomplete", "message": "…", "hint": "Map every required stream field before attaching.",
             "docs": "https://postbag.dev/docs/errors/mapping_incomplete", "details": {  } } }

hint says what to do next. docs deep-links to the section below. details carries structured specifics (validation issues, missing fields, retry delay).

Codes

CodeStatusHint
unauthorized401Provide a session cookie or an Authorization: Bearer pb_live_… key.
forbidden403Use credentials with permission for this operation (check key scopes).
origin_rejected403Add the site origin to the form’s allowed origins. The submission was still stored as quarantined.
not_found404Check the id and organization scope.
conflict409The resource already exists, or is still referenced elsewhere. Consider if_exists: "return".
idempotency_conflict409Reuse an Idempotency-Key only for the identical operation.
plan_limit_reached402Change plan limits or remove an unused resource.
payload_too_large413Reduce the payload size, field count, or nesting depth (limit 256 KB).
unsupported_media_type415File uploads are not supported yet; send text fields only.
validation_failed422Correct the fields described in details.issues and retry.
mapping_incomplete422Map every required stream field before attaching; details lists them.
schema_violation422Publish a compatible schema or correct the submitted fields.
expressions_not_enabled422Use from, const or default until expressions ship.
rate_limited429Retry after the indicated delay (Retry-After). The submission was stored as quarantined.
internal_error500Retry; contact support if this persists.

Your first form is three minutes away.

Sign up, get a submit URL, point a form at it. The first submission lands in your inbox and your email. Everything else appears when you need it.