HTTP 200 with an error code in the body; clients must inspect both the HTTP status and code.
Error body
details is optional. Business and validation errors can include structured context such as requested count, runtime limit, missing identifiers, or access state.
The company-to-event reverse search and personnel events-by-name routes use an HTTP 200 concurrency business error. It returns code: 429, errorKey: "USER_CONCURRENCY_LIMIT_EXCEEDED", data: null, and details: null when the per-user concurrency limit is reached.
Visitor unlock, full-access unlock, and personnel events-by-name can also return HTTP 200 with code: 400 and errorKey: "USER_HAS_NO_FEATURE" when an active paid subscription is required. Treat these as failed business actions even though the transport status is successful.
Common status codes
Trace fields
Error responses includetraceId for troubleshooting. The same value is also returned in the X-Request-ID response header when available.
When contacting support, include:
- endpoint path and method
- response status
traceId- approximate request time
- non-sensitive identifiers such as
event_id,exhibitor_id,personnel_id, ortaskId
Retry guidance
- Retry network failures and
429responses with backoff. - Do not automatically retry
400or401without changing the request. - Do not retry
422with the same selected batch; reduce it to at most2000personnel IDs. - Treat
402as a product state, not a transient failure. - For asynchronous contact unlocks, retry polling the task endpoint rather than creating duplicate unlock tasks.
Notes
- Error bodies do not include raw debugging fields, but can include the optional structured
detailsfield. - Inspect body
codeeven when the HTTP status is200on endpoints that document a business-error success envelope. - Individual endpoint pages may list the subset of statuses most relevant to that route.