RequestExceptionHandler, and each of those renders a narrower shape. The declared schema is a leftover; the shapes below are what your parser will meet.
The shapes you’ll actually see
- Validation failure
- Not signed in
Status codes in use
There’s no documented
5xx contract. If you get one, it isn’t validation feedback of any kind — treat it as transient and retry with backoff rather than trying to parse it as either error shape above.
A real example
Next
Idempotency
Which of these are safe to trigger again after a failure.
Rate limits
The one status code with a body shape that’s different again.