# Nightly Test Summary — 2026-07-06 (IST)

**4TH CONSECUTIVE MASS-FAILURE NIGHT — still infra/environment, not app regressions** (938/1654 failed, 57%)

- Run: `test_reports/nightly_20260705.json` (marker date=20260705, exit_code=1)
- Note on dating: the marker's `date` field is stamped at UTC run-start, not IST — this run's `startTime` is `2026-07-05T18:45:04Z` (00:15 IST Jul 6) and `finished_at` is `2026-07-06T00:02:08Z` (05:32 IST Jul 6), so it belongs to **today (2026-07-06 IST)**. Same UTC/IST lag as the prior 2 nights — still unfixed.
- Totals: **1654 total, 584 passed (expected), 938 failed (unexpected), 132 skipped, 0 flaky**

## Root cause this run

Same signature as the prior 2 nights (server/DB/proxy unreachable), not the browser-binary issue from 2026-07-03→04 (that stays fixed — no `Executable doesn't exist` errors here). Basic checks fail wholesale across unrelated PWAs: `manifest.json returns 200` → 404, PostgREST existence checks → 406, dashboards/balance cards never render, hub-redirect checks see the app's own URL instead of `/hub/`. Breakdown of the 938 failure instances by class:
- 1132 timeout-class failures (`page.waitForSelector` / `beforeEach` hook timeouts / navigation timeouts) — note: some tests throw more than one timeout-class error across retries, so this exceeds the 938 test count
- 744 other failures, mostly downstream `expect(...).toBe(200)` → 404/406 assertions once the stack is unreachable, plus `toHaveTitle`/`toHaveURL` mismatches

Per-file failure counts are **numerically identical** to the 2026-07-04→05 run (fundcustodian 154, printing 94, sales_billing 82, vendors 74, upi_pay 68, ... down to admin/smoke/client/debug_tour). File hashes differ (confirmed distinct runs, not a stale copy) — the outage is deterministic enough that the same tests fail the same way night after night, consistent with the same dev-stack-down condition recurring at the same 01:00 IST window.

## Failing spec files (all 29, by failure count)

| Spec file | Failures |
|---|---|
| fundcustodian.spec.js | 154 |
| printing.spec.js | 94 |
| sales_billing.spec.js | 82 |
| vendors.spec.js | 74 |
| upi_pay.spec.js | 68 |
| customers.spec.js | 50 |
| recce.spec.js | 44 |
| custodian.spec.js | 40 |
| hr.spec.js | 36 |
| sales.spec.js | 34 |
| recce_client.spec.js | 32 |
| safe_bottom.spec.js | 28 |
| stores.spec.js | 26 |
| vehicle.spec.js | 20 |
| counters.spec.js | 18 |
| yagya-portfolio.spec.js | 18 |
| expense.spec.js | 16 |
| contacts.spec.js | 14 |
| finance.spec.js | 10 |
| installation.spec.js | 10 |
| learn.spec.js | 10 |
| tour_planner.spec.js | 10 |
| hub.spec.js | 8 |
| oc_admin.spec.js | 8 |
| production.spec.js | 8 |
| vrs.spec.js | 8 |
| admin.spec.js | 6 |
| smoke.spec.js | 6 |
| client.spec.js | 4 |
| debug_tour.spec.js | 2 |

## Sample failing tests (first 20, illustrating the wholesale/infra pattern)

- admin.spec.js — client.zones table exists and is accessible via PostgREST
- admin.spec.js — client.accounts has zone and is_head columns
- admin.spec.js — installation.campaigns has zones column
- client.spec.js — manifest.json returns 200
- client.spec.js — sw.js contains current 360client version
- contacts.spec.js — manifest.json returns 200
- contacts.spec.js — sw.js is versioned
- contacts.spec.js — auth screen and app container present
- contacts.spec.js — hub navigation button present
- contacts.spec.js — search and contact list elements present
- contacts.spec.js — Dexie offline DB used
- contacts.spec.js — Top Management access control in place
- counters.spec.js — Phase 4.17 — comments modal + RPCs referenced
- custodian.spec.js — dashboard loads with balance display
- fundcustodian.spec.js — balance card renders and shows shambhu name
- hr.spec.js — no session → redirects to /hub/ (sees own URL instead)
- hub.spec.js — Print Nest tile is visible
- printing.spec.js — no session → redirects to hub (sees own URL instead)
- smoke.spec.js — counters PWA loads (200/302 seen where 404 expected)
- yagya-portfolio.spec.js — page loads with correct title

(Full list of 938 failing tests is in the JSON; not reproduced here per the "max 20" instruction — pattern is uniform wholesale failure, not isolated regressions.)

## Regressions vs baseline

No **new** regression class vs the last 3 nights — this is the same recurring wholesale infra-outage pattern (2026-07-02→03, 2026-07-03→04, 2026-07-04→05, and now 2026-07-05→06), not a new app-level break. Trusted baseline remains **2026-06-20: ~1220+ tests, 186 skipped, 0 failed** (`project_pwa_test_coverage.md`). Not re-baselined.

## Action needed (not performed by this autonomous task)

- Verify the dev server / DB / proxy stack is actually up and reachable **during** the nightly test window (01:00 IST) — this is now 4 for 4 nights with the stack apparently down/unreachable at that time.
- Fix the nightly cron's date-stamping (marker `date` field and `nightly_<date>.json` filename use UTC run-start date, causing a recurring one-day lag vs the IST calendar date the run actually belongs to) — unfixed for a 3rd consecutive night.
- Re-run Playwright manually against a confirmed-up dev environment to get a clean comparison point.
