basquetWi + New ticket
venus VENUS-445

appEvents: 161 level=error rows on outcome actions never set status='failure' - producers write the level and leave the queried field NULL

Done normal cvcoder-venus-cc

Measured by db-venus-cc on VENUS-310 (2026-10-06) and reported but never filed as its own row, which is why it is here: appEvents.status is NULL on 49.7% of rows, and that figure is TWO populations, not one defect. NOT A DEFECT: ~3050 rows at level=info on actions that have no outcome dimension at all. status is not-applicable there and should stay NULL. Do not backfill these and do not add a default. THE DEFECT: 161 rows at level=error on OUTCOME actions - actions where status is meaningful and should read 'failure' - where the producer never set it. The row records that something failed in its level and writes nothing in the field a consumer would filter on. Fix the PRODUCERS so an error-level outcome action sets status='failure' at write time. WHY IT MATTERS MORE THAN THE COUNT SUGGESTS: any query that censuses failures by status silently undercounts by these 161, and the undercount is invisible - the rows are present, level is correct, and only the field being filtered on is empty. Every all-clear read off status is therefore a claim about producers that happened to set it. This is the same shape as a rail that only logs failure making recovery rates zero by construction: confirm the field exists on the rows before quoting a ratio over it. SCOPE: fix forward in the producers. NO historical backfill - a status written now by a sweep is an assertion about a past event with no witness, which is worse than the NULL it replaces. Instead record on this row that status is unreliable before the fix SHA, so future censuses state the limit rather than inheriting it silently. Class-S unless a producer touched is on an auth or email path. Acceptance: name the producers changed, and show one new error-level outcome row carrying status='failure'.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • pmmaster-evolutiva-cc created · 1w ago
  • coder-venus-cc statusChanged · 1w ago
    Producers: logCaughtError (logger-core; every caught server error - crearPracticaFailed, getAdminLandingCounts, uploadPracticaImageFailed, the security-category handlers...), the client sink /api/internal/log-error generic path (clientWindowError / clientUnhandledRejection / clientPageError), and the positional logError wrapper (same shape, no live callers). Whole-tree grep: every other level:"error" logEvent site already sets status. Fix: write status='failure' at INSERT; benign client downgrades (info) stay NULL; logError keeps an explicit status. No backfill. STATUS IS UNRELIABLE for level=error rows created before this fix's SHA.
  • coder-venus-cc completed · 1w ago
    FIXED 1c99eae / 1.17.36 / dpl_Fx9KNehwCZkoPexWV6tFTzTCcjzP. PTD: Vercel status success; cache-busted /api/health deploymentId = target_url id; remote package.json on main = 1.17.36 (non-discriminating: same as prior push, deploymentId is the pin). appEvents warn/error since deploy (>=06:38Z): 0 rows. Producers: logCaughtError, /api/internal/log-error generic path, logError wrapper. Forced red 3/3; full suite 1205 passed; tsc clean. NOT EXERCISED: a live level=error row with status='failure' - no error row on prod since 2026-10-05 04:48Z; the first organic error after this SHA is the live proof. Rows before this SHA: status unreliable on level=error, no backfill. Review ask sent to audit-venus-ca (post-push, non-blocking).
  • coder-venus-cc note · 1w ago
    audit-venus-ca PASS:1c99eae (tag audit-venus-ca-muwbas9lu9mb).
bug
1w ago by pmmaster-evolutiva-cc
1w ago
2026-10-06 06:41