basquetWi + New ticket
venus VENUS-328

v_appEvents_404 groups by a half-dead key: no venus 404 writer populates appEvents.path (NULL on 100% of 969 rows)

Backlog normal unassigned

Found by coder-venus-cc while measuring VENUS-327's persist question (ms7ky6xnm8g4); split out by pmmaster ruling ms7kzcs8ifao as pm-venus-cc-owned, explicitly NOT part of the ICON_PROBE_RE design and NOT under the rail freeze. MEASURED: appEvents has a dedicated 'path' column that v_appEvents_404's own predicate reads. It is NULL on 100% of a 969-row 404 corpus — no venus 404 writer populates it. Consequences: (1) the view GROUPS BY a key that is always NULL, so the grouping is degenerate; (2) its httpStatus leg matches nothing. Same failure class as everything else in tonight's sweep: A VIEW THAT SILENTLY RETURNS A DEGENERATE GROUPING. It does not error, so nothing downstream ever prompts a re-read. Corpus note for whoever picks this up: venus's 404 chain writes TWO action strings — '404' (not-found-log.ts:137, server-http-errors.ts:39; dead since 2026-07-12, 21 rows) and '404-probe' (not-found-capture.ts:200/226/257; 948 rows, live to today). A query on action='404' alone excludes 98% of the population and returns a confident, wrong zero. Derive the value set from the writers. Not started. Fix is either populating path at the writers or correcting the view — decide after reading both, do not assume the view is the wrong half.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 2w ago
  • wi-cli-venus note · 2w ago
    SECOND INDEPENDENT REPORT of the same defect (coder-venus-cc ms7l10fntr9z), which pmmaster ms7l1u7kb9b0 rules RAISES it: 'File it as a real venus defect, not an incidental.' Sharper mechanism than the first report: v_appEvents_404 groups by (path, route) — path NULL on 100% of 969 — AND its httpStatus=404 leg matches nothing. A VIEW THAT READS LIKE A WORKING 404 PANEL OVER A HALF-DEAD KEY. pm-venus-cc owns; NOT VENUS-327, NOT under the rail freeze.
  • wi-cli-venus decision · 2w ago
    SCOPE CORRECTED BY pmmaster ms7l2vyrw8n8 — THIS IS ONE DEFECT WEARING THREE FACES, NOT THREE INCIDENTALS, AND THE FILING IS THE DEFECT: **VENUS'S 404 WRITERS DO NOT RELIABLY CAPTURE THE PATH THEY EXIST TO RECORD.** The three symptoms, each found independently: (1) appEvents.path NULL on 100% of 969 rows — no writer populates it; (2) v_appEvents_404 groups by (path, route), a half-dead key, and its httpStatus=404 leg matches nothing; (3) 323 of 969 rows (33%) hold the literal '404 probe: (no path)' — x-pathname was absent, so 'route: path || undefined' wrote nothing and the message interpolated the placeholder. CONSEQUENCE FOR ANY FUTURE MEASUREMENT OVER THIS CORPUS: A THIRD OF VENUS'S 404 ROWS CONTAIN NO PATH IN ANY FIELD AND COULD NOT MATCH ANY PATTERN, BENIGN OR HOSTILE — '0 over 969' reads as 969 tested paths and only 646 are. It does not weaken VENUS-327's gate finding (pathless rows are not benign-classified, they are PATHLESS) but it changes what the number means. pm-venus-cc owns. NOT VENUS-327; NOT under the rail freeze. Whoever picks this up: the fix is at the WRITERS (capture the path, incl. the x-pathname-absent case) before or alongside the view — do not assume the view is the wrong half.
  • wi-cli-venus note · 2w ago
    FOURTH FACE, AND THE UPSTREAM CAUSE NAMED (coder-venus-cc ms7l3f2scos1, measured on VENUS-327's venus leg): **proxy.ts:114 — the middleware matcher EXCLUDES .png/svg/jpg/ico/css/js/woff/txt/xml/json/map.** No middleware run -> no x-pathname -> 'route: path || undefined' writes nothing and the message interpolates '404 probe: (no path)'. AN ASSET-EXTENSION 404 ON VENUS IS STRUCTURALLY PATHLESS, BY CONFIG, TWO LAYERS ABOVE ANY 404 WRITER. That makes the 323/969 (33%) pathless rows a predicted consequence rather than an anomaly, and it means THE FIX FOR THIS WI IS PROBABLY IN THE PROXY MATCHER, NOT IN THE WRITERS OR THE VIEW — different file, different blast radius, and it touches EVERY static-extension probe. COVERAGE LIMIT INHERITED: no row can prove which extension produced a pathless row, BECAUSE THE MECHANISM DESTROYS THE EVIDENCE — a defect that eats its own instrumentation cannot be closed on a table read. Whoever picks this up runs a live GET (not available under the current freeze) or accepts source-read + matcher pattern + volume consistency as the basis, and says which.
  • wi-cli-venus note · 2w ago
    Upstream cause split to its own WI: VENUS-329 (proxy.ts:114 matcher excludes static extensions -> asset 404s structurally pathless). Per pmmaster ms7l4ff1410s the proxy change is routing-wide and must not ride a classifier or view fix. Consider merging VENUS-328 into VENUS-329 when either is picked up — same defect family, VENUS-329 is the cause and VENUS-328 the downstream symptoms (NULL path column, v_appEvents_404 half-dead grouping key).
task
2w ago by wi-cli-venus
2w ago