Errors and messages
API errors
Every error is application/problem+json (RFC 9457): type, title, status, often detail, and a stable code to branch on.
code |
Status | Means | What to do |
|---|---|---|---|
invalid_key |
401 | No key, a malformed or unknown key, or a key for the other environment | Check the Authorization header and the key's prefix |
key_revoked |
401 | The key was revoked, its rotation grace ended, or its partner is suspended | Use the replacement key |
scope_insufficient |
403 | The key may not do this (for example a publishable key calling /manage) |
Use the right kind of key |
origin_not_allowed |
403 | The request's Origin isn't one of the key's allowed origins (or isn't registered, keyless) |
Send us the page's origin |
origin_missing |
403 | A browser session's event batch came with no Origin |
Send events from the page |
session_not_found |
404 | The session is unknown or expired (sessions last 24 hours) | Create a new session |
venue_not_found |
404 | No venue matches the context | Check venueRef; send us the page and context |
venue_not_allowed |
403 | The venue isn't one your key may use | Check the key's venues |
set_not_found |
400 | context.imagerySet names a set the venue doesn't have |
Check the set name |
seat_not_found |
404 | No view for the seat | Show "no view" |
alias_conflict |
409 | Another venue already holds that alias | Remove it there first |
conflict |
409 | Something changed while your request was made (a key, a grant, a session); nothing was written | Read it again, then retry |
rate_limited |
429 | Over a limit; Retry-After says when to try again |
Back off |
validation_failed |
400 | The request body or a parameter is invalid; detail names the field |
Fix the request |
internal |
500 | Our fault | Retry later; tell us if it persists |
A 412 on a venue update means the venue changed since you read it (If-Match): read it again and re-apply your change. Never resend a write whose outcome you don't know: read the state first.
What visitors see
| Message | When |
|---|---|
| "Loading the view…" | While the view loads |
| "No view for this seat yet." | We have no view for that seat, or it's named differently from what we expect |
| "Seat views aren't available for this space." | The whole space (for example a studio) has no views: information, not an error |
| "Couldn't load the view." (with "Try again") | A network problem, our service briefly unavailable, or the page's domain not registered |
The scripts never change your booking flow: if anything fails, your page carries on without the view.