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

**VERDICT: INFRA OUTAGE (recurring, "server/DB/proxy unreachable" signature, 4th occurrence this week) — 584 passed, 920 failed, 166 skipped of 1670. NOT code regressions.**

- Marker: `nightly_marker.json` date=20260710, finished_at 2026-07-10T23:44:59Z = **2026-07-11 05:14:59 IST** (marker date field is UTC-run-start-stamped, not IST — same known stamping quirk noted on prior nights).
- Report file: `test_reports/nightly_20260710.json`
- Playwright `startTime`: 2026-07-10T18:45:04.780Z = 2026-07-11 00:15 IST

## Totals
| Metric | Count |
|---|---|
| Total | 1670 |
| Passed (expected) | 584 |
| Failed (unexpected) | 920 |
| Skipped | 166 |
| Flaky | 0 |

## Root cause (confirmed from error messages)
This is NOT the missing-Playwright-browser-binary bug seen on 07-07→08, 07-08→09, 07-09→10 (no `browserType.launch: Executable doesn't exist` errors this run). Instead it's the same "server/DB/proxy unreachable" signature seen on 07-04→05, 05→06, 06→07:
- `manifest.json returns 200` → 404, body is raw Apache default-error HTML instead of JSON
- `sw.js` checks → HTML instead of the service worker script
- PostgREST table-existence checks (e.g. `client.zones table exists and is accessible via PostgREST`) → 406 instead of 200

Passed count (584) matches those three prior "server down" nights exactly, confirming the same failure class.

## 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 dev stack was unreachable during the test window; this is an infra fault, not app-code regressions. Per-spec-file failing-test counts are numerically identical to the 07-04→05 / 05→06 / 06→07 runs (fundcustodian 154, printing 94, sales_billing 82, ... down to debug_tour 2) — no new failure signature, same recurring outage.

## Failing spec files (29 files with failures)
| Spec file | Unique failing tests |
|---|---|
| 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 |
| 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 |
| admin.spec.js | 6 |
| smoke.spec.js | 6 |
| hub.spec.js | 8 |
| oc_admin.spec.js | 8 |
| production.spec.js | 8 |
| vrs.spec.js | 8 |
| client.spec.js | 4 |
| debug_tour.spec.js | 2 |

## Sample failing tests (1 per file, first occurrence)
- admin.spec.js :: client.zones table exists and is accessible via PostgREST (406 not 200)
- client.spec.js :: manifest.json returns 200 (404)
- contacts.spec.js :: manifest.json returns 200 (404)
- counters.spec.js :: Phase 4.17 — comments modal + RPCs referenced
- custodian.spec.js :: dashboard loads with balance display
- customers.spec.js :: page returns 200
- debug_tour.spec.js :: debug tour-pg Excel upload
- expense.spec.js :: manifest.json returns 200 (404)
- finance.spec.js :: manifest.json returns 200 (404)
- fundcustodian.spec.js :: balance card renders and shows shambhu name
- hr.spec.js :: no session → redirects to /hub/
- hub.spec.js :: Print Nest tile is visible
- installation.spec.js :: manifest.json returns 200 (404)
- learn.spec.js :: manifest.json returns 200 (404)
- oc_admin.spec.js :: manifest.json returns 200 (404)
- printing.spec.js :: no session → redirects to hub
- production.spec.js :: manifest.json returns 200 (404)
- recce_client.spec.js :: non-supervisor invite attempt returns forbidden
- recce.spec.js :: source contains client_name field and renderClientChips
- safe_bottom.spec.js :: expense HTML loads safe-bottom.css
(9 more affected files not shown: sales, sales_billing, smoke, stores, tour_planner, upi_pay, vehicle, vendors, vrs — same 404/406 signature.)

## Action needed (not performed by this autonomous task)
- This "server unreachable at 01:00 IST" signature has now recurred 4 times this week (07-04→05, 05→06, 06→07, and this run), interleaved with a separate 3-night browser-binary bug (07-07→08 through 07-09→10). Needs a human/ops fix confirming the dev stack (Apache/PostgREST/DB) is actually up and stays up through the nightly window — not another automated retry.
- The marker `date` field's UTC-vs-IST stamping quirk remains unfixed — cosmetic only, does not block this analysis since `finished_at` disambiguates.
- No baseline update performed — pass/fail counts do not represent a clean run to compare against; trusted baseline remains 2026-06-20 (0 failed) until a clean nightly run comes back.
