OhMyBug

logic/correctness

Generic Check Fires Before Specific Error

#65rare15 sightingsfirst seen September 2026

What goes wrong

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.

Example

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.

Not to be confused with

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).

Discovered by

Field notes · 11