Common patterns
Responses and errors
Successful responses use JSON. Errors return a stable type and optional data.
Error shape
Branch on type, not on translated human-readable messages.
{
"type": "FORBIDDEN",
"data": null
}Common HTTP statuses
- 401 β missing, invalid, expired, revoked PAT, or workspace PAT access disabled. All return exactly
{"type":"UNAUTHORIZED"}with nodataorreason, so they cannot be distinguished - 403 β authenticated request lacks permission for the resource in the current role
- 404 β resource missing or outside the user's access
- 409 β record state conflict
- 422 β path or query validation failed
Troubleshooting order
- 1
Record the HTTP status and
typeRemove raw PATs and download URLs from logs.
- 2
Check identifiers
Confirm that workspace
slug,record_id,team_id, andmember_idbelong together. - 3
Check current access
Verify that the same user can see the resource in Callabo. A 401 for one workspace does not distinguish a PAT problem from PAT access disabled for that workspace.