API Error Handling

Live Form Validation

Submit the form to trigger formatApiError. The email must include @ and the password must be at least 10 characters — failing either condition produces an inline field error.

Demo Payloads

Click any button to run that payload through formatApiError and inspect the result.

(a) Multi-field validation error
{
  "message": "Validation failed",
  "errors": [
    {
      "path": "password",
      "message": "String must contain at least 10 character(s)"
    },
    {
      "path": "email",
      "message": "Invalid email"
    }
  ]
}
(b) Single-field validation error
{
  "message": "Validation failed",
  "errors": [
    {
      "path": "newPassword",
      "message": "Required"
    }
  ]
}
(c) Non-validation error (409)
{
  "message": "Email already in use",
  "statusCode": 409
}

Behavior Reference

How humanizeFieldError maps raw Zod messages to human-readable strings.

Raw messagePathHumanized
String must contain at least 10 character(s)passwordPassword must be at least 10 characters
String must contain at most 64 character(s)usernameUsername must be at most 64 characters
Invalid emailemailPlease enter a valid email address
RequirednewPasswordNew password is required
Email already in usenoneEmail already in use (passed through)