# EXPOSURE_TICKET_INVALID

- Surface: API
- HTTP status: 400
- Details: `{ exposureId: string }`

## Cause

An Exposure Ticket could not be verified: the MAC failed, the payload was tampered, or the ticket's App/Environment does not match the calling credential.

## Fix

Discard the ticket and call `evaluate-all` again for a fresh resolution. Do not invent or rewrite ticket strings — every Exposure field is bound to a server-issued ticket.

## Related

- [EXPOSURE_TICKET_EXPIRED](https://splitch.dev/docs/error/EXPOSURE_TICKET_EXPIRED)
- [EVENT_ID_CONFLICT](https://splitch.dev/docs/error/EVENT_ID_CONFLICT)
- [VALIDATION_ERROR](https://splitch.dev/docs/error/VALIDATION_ERROR)

Source: https://splitch.dev/docs/error/EXPOSURE_TICKET_INVALID