Skip to main content

Errors

Responses use JSON with error / error_description or JSON:API-style errors arrays.

Status codes

CodeMeaningTypical fix
401Missing/invalid/expired tokenRefresh via /oauth/token
403Valid token, forbiddenGrant scope/permission; use user token if required
400Bad request / validationFix body, filters, or required user
404Unknown route or recordCheck path, id, host/tenant
501Feature/module disabled for this orgEnable on System → organization → Restfull Toggle tab
422Semantic validationSee message (e.g. form errors)

Common messages

Message / situationRemediation
Forbidden / CanCan deniedAdd permission in System admin (proposals.draft, …)
User requiredUse ROPC/impersonation token with resource_owner_id
User blocked / lockedPick another user
Already votedIdempotent vote handling on your side
Unknown order / filterMatch OpenAPI allowed values
Attachments API disabledRestfull Toggle attachments_enabled for the organization

Permissions debugging

  1. Confirm scope on token includes the route family (proposals, …).
  2. Confirm permission on API client matches the action.
  3. Confirm Host matches the organization that owns the client.