Skip to main content

Error contract

Every error response from the widget’s API carries a code and a detail:
detail is a plain string, with one exception: when the request itself failed validation, detail is an object keyed by the field that failed instead — one array of messages per field, the same shape you’d get from any field-level validation error.
20000 is the only code that carries this shape today — every other code below always answers with a single string message.

Session expired vs. session not found

A user’s session can fail in two different ways, and the widget’s screen tells them apart: