# Nightly Test Summary — 2026-07-09 run (2026-07-10 IST)

**VERDICT: 8th CONSECUTIVE MASS-FAILURE NIGHT — same browser-binary bug, still unfixed, 3rd recurrence of this exact signature. NOT a set of app regressions.**

- Marker: `nightly_marker.json` date=20260709, finished_at 2026-07-09T19:26:26Z = **2026-07-10 00:56 IST** (marker date field is UTC-run-start-stamped, not IST — same known stamping quirk noted on prior nights).
- Report file: `test_reports/nightly_20260709.json`

## Totals
| Metric | Count |
|---|---|
| Total | 1654 |
| Passed (expected) | 240 |
| Failed (unexpected) | 1354 |
| Skipped | 60 |
| Flaky | 0 |

Numerically **identical** to the 2026-07-07→08 and 2026-07-08→09 runs (240/1354/60/0) — same failure mode recurred with the same shape, three nights running now.

## Root cause (confirmed from error messages)
- Failures throw `Error: browserType.launch: Executable doesn't exist at /root/.cache/ms-playwright/chromium_headless_shell-1223/chrome-headless-shell-linux64/chrome-headless-shell` — Playwright's browser binary is missing again. Same signature as the 2026-07-07→08 and 2026-07-08→09 runs; the `npx playwright install` fix has still not held durably across 3 nights.
- Remaining failure instances are downstream `expect(...)` assertion failures cascading from pages that never loaded because the browser couldn't launch.

## REGRESSIONS vs baseline
**None identifiable this run.** The 2026-06-20 baseline (~1220+ tests, 0 failed — `project_pwa_test_coverage.md`) is not comparable while the browser binary is missing; this is an infra/environment fault, not app-code regressions. Per-spec-file unique-failing-test counts are identical to the two prior nights (fundcustodian 86, recce 70, printing 47, sales_billing 41, ... down to debug_tour/mappls-creds 1) — no new failure signature.

## Failing spec files (36 files with failures; top 20 by unique failing-test count)
| Spec file | Unique failing tests |
|---|---|
| fundcustodian.spec.js | 86 |
| recce.spec.js | 70 |
| printing.spec.js | 47 |
| sales_billing.spec.js | 41 |
| upi_pay.spec.js | 38 |
| vendors.spec.js | 37 |
| drive_consolidator.spec.js | 36 |
| safe_bottom.spec.js | 33 |
| customers.spec.js | 25 |
| custodian.spec.js | 24 |
| counters.spec.js | 20 |
| recce_client.spec.js | 19 |
| sales.spec.js | 19 |
| hr.spec.js | 18 |
| smoke.spec.js | 17 |
| hub.spec.js | 15 |
| stores.spec.js | 13 |
| tour_pg.spec.js | 12 |
| vehicle.spec.js | 11 |
| admin.spec.js | 10 |

(16 more spec files also failed at lower counts: rentveh, expense, tour_pg_sharing, contacts, finance, installation, learn, tour_planner, oc_admin, production, vrs, activity, client, dispatch, debug_tour, mappls-creds.)

## Action needed (not performed by this autonomous task)
- Run `npx playwright install` again and this time investigate durability — find and fix whatever is stripping `/root/.cache/ms-playwright` between nightly runs (container rebuild, cleanup cron, disk-space job, etc.). This is now the 3rd recurrence; a one-off reinstall is not enough — needs a persistence/root-cause fix (e.g. mount the cache outside any ephemeral layer, or add a pre-flight `playwright install --with-deps` step to the nightly runner itself).
- Once the binary is confirmed to survive a full day/night cycle, re-run to get a clean signal on any real app-level assertion failures currently masked by the wholesale browser-launch failure.
- The marker `date` field's UTC-vs-IST stamping quirk remains unfixed (8th consecutive night) — cosmetic only, does not block this analysis since `finished_at` disambiguates.
- No memory update needed beyond appending this run's entry — pass/fail counts did not change vs the immediately prior (still-unbaselined) run, and the trusted baseline remains 2026-06-20 (0 failed) until a clean nightly run comes back.
