Troubleshooting
| Symptom | Check |
|---|---|
401 Authentication required | Bearer header exists and session is not expired/logged out |
403 Insufficient permission | Membership contains a role allowed for the operation |
403 Attendee is outside the allowed groups | User and instance group memberships overlap |
409 Instance is not bookable | Instance is scheduled and audience is not nobody |
409 Instance is full | Capacity and confirmed bookings |
409 Entitlement has expired | Entitlement expiry and server clock |
402 Payment failed | Payment gateway result and merchant configuration |
| Readiness fails | Database connectivity, credentials, migrations, and application logs |
/docs assets return 404 | VitePress base is /docs/ and npm run build:docs ran |
API errors are JSON. Reverse-proxy, browser, or HTML errors usually indicate routing rather than domain validation.
When reporting a problem, include the request path, status, timestamp, environment, and correlation information available from the gateway—but never include magic-link tokens, sessions, database credentials, or payment secrets.