Problem
Field validation failures currently return 400 Bad Request, which conflates two distinct error categories:
- 400 Bad Request — the request is malformed (unparseable JSON, wrong
Content-Type)
- 422 Unprocessable Entity — the request is syntactically valid but fails business/field validation rules
Proposed Solution
Return 422 Unprocessable Entity for field validation failures and reserve 400 Bad Request for genuinely malformed requests.
Replace HttpStatus.BAD_REQUEST with HttpStatus.UNPROCESSABLE_ENTITY in controller branches that handle validation failures (e.g. @Valid constraint violations, squad number mismatch). Spring's default HttpMessageNotReadableException handler (unparseable JSON) should remain 400.
Acceptance Criteria
References
Problem
Field validation failures currently return
400 Bad Request, which conflates two distinct error categories:Content-Type)Proposed Solution
Return
422 Unprocessable Entityfor field validation failures and reserve400 Bad Requestfor genuinely malformed requests.Replace
HttpStatus.BAD_REQUESTwithHttpStatus.UNPROCESSABLE_ENTITYin controller branches that handle validation failures (e.g.@Validconstraint violations, squad number mismatch). Spring's defaultHttpMessageNotReadableExceptionhandler (unparseable JSON) should remain400.Acceptance Criteria
422 Unprocessable Entity400 Bad Requestis reserved for malformed requests (unparseable JSON, wrongContent-Type)@ApiResponseannotations updated to declare422instead of400for validation responsesCHANGELOG.mdupdatedReferences