Test new branches on the old cases too. The old inputs show what the new branch now swallows.
logic/correctness
An earlier, coarser check (a 'nothing to do' early return, an old validation, a blanket 400, a cross-check against defaults) triggers on the same inputs as a later, more specific check or new branch, so the precise error, safe refusal or new path can never be reached for the overlap.
A booking request for a taken slot fails schema validation first with a bare '400 invalid input', so the user never sees the specific 'slot already booked' message the handler would have returned.
Both checks exist and their order is the defect; not a temporary refusal hiding a permanent one (Transient Refusal Shadows Permanent), not a live check blocking a replay (Replay Behind Live Gate), and not a lookup done before authorization (Resource lookup precedes authority).