JSON clients get the standard Laravel 422 shape: a summary message and an errors object keyed by field name.
{
"message": "The email field must be a valid email address. (and 2 more errors)",
"errors": {
"email": ["The email field must be a valid email address."],
"plan": ["The selected plan is invalid."],
"seats": ["The seats field must be at least 1."]
}
}- Messages use the field label in lower case, or the field’s custom message when it has one.
- Errors for list fields can be keyed by item, for example
topics.0. The embed widget shows them on the parent field. - HTML posts get the hosted error page with the same messages, a 422 status and a link back.
- Test submissions through the API and MCP are validated the same way and return the same errors.