Login retry after a 2FA timeout waits for the closed Chrome, then opens a new one

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ManikandanandClaude Opus 5.5 committed 2026-10-27 19:18:55 +05:30
1 parent 64efb68ea1
commit a8af44e673
3 files changed
+60 -15

No files matched your search

+18 -8
View File
@@ -97,7 +97,8 @@ of 23–26/10 changed no other result.
**2026-10-27 terminal runs:** 16:40 — 2FA mail never came in 10 min (eCW
timed the approval out), then attempt 2 crashed: the run closed the Chrome
it opened and re-attached to 9222 while that Chrome was still closing
(`connect_over_cdp: Target page ... has been closed`; §10). 16:53 (after a
(`connect_over_cdp: Target page ... has been closed`; fixed in `a89f689`,
§10). 16:53 (after a
120 s guard cooldown) — login 220 s, 2FA mail 42 s, **50/50, 38 Pass / 12
Fail / 0 Review** (the 50-claim sheet; same as 26/10 17:40). 17:30 with
`Mecor Ready 2 - 10262026.xlsx` (all claims, QUIET_BOXES, ECW_KEEP_OPEN=0)
@@ -213,7 +214,7 @@ Get-ChildItem tests\test_*.py | ForEach-Object { "$($_.Name): $((python $_.FullN
- Tests run offline against fake HTML pages in `tests/fixtures/` and fake DB
connections; they never touch eCW or SQL Server (`test_cdp_browser.py`
starts a local Chromium on a debug port). As of 2026-10-27: 71 test
files, **1239 tests** (full run 2026-10-27: 1239/1239) (earlier flaky, each
files, **1239 tests** (full run 2026-10-27 after `a89f689`: 1239/1239) (earlier flaky, each
failed once and passed on rerun: test_verify_no_live_writes,
depression_dx_pointer, progress_note_wait — watch them) (about 5 minutes for all of them).
@@ -649,7 +650,9 @@ the Portal (restarted 2026-10-26, [portal] terminal tab).
History: `git log --oneline`.
Last code commits: `1da9e7c` (2026-10-27, Portal sign-in with the Ecare
Last code commits: `a89f689` (2026-10-27, login retry after a 2FA timeout
waits for the closed Chrome and opens a new one — §10), `1da9e7c`
(2026-10-27, Portal sign-in with the Ecare
office login — §2), `cc3a01a` (2026-10-27, Portal container on India time —
§10), `69c51d8` (2026-10-27, Dockerfile: libgssapi-krb5-2 for ODBC Driver
18 — §10), `70ba709` (2026-10-27, Portal server mode for Dokploy — §10), `f99dc17` (2026-10-27, Portal roles Super Admin /
@@ -787,11 +790,18 @@ test claim ids — new posts must not (§7).
watchdog came after them and has not fired live yet. Suggested, not
ticketed: a landing-page timeout with one retry, a 2FA retry, a week of
daily runs to measure login times on the Runs page.
- **Login retry bug (seen 2026-10-27 16:50, not fixed).** After a 2FA
timeout the run closes the Chrome it opened and attempt 2 attaches to
9222 at once, while that Chrome is still closing → `connect_over_cdp:
Target page, context or browser has been closed`, run over. Fix: wait
until 9222 stops answering, then open a fresh Chrome (test-first).
- **Login retry bug (seen 2026-10-27 16:50, fixed in `a89f689`, not yet
seen live).** After a 2FA timeout the run closed the Chrome it opened and
attempt 2 attached to 9222 at once, while that Chrome was still closing →
`connect_over_cdp: Target page, context or browser has been closed`, run
over. Two causes: `Browser.close` only starts Chrome's shutdown, and the
"no Chrome → open it" step ran once, before the login loop. Now the
attached browser's `close()` waits (up to 30 s) until the port stops
answering, and `launch()` opens a new Chrome when this run opened one and
closed it (same extra args; the eCW proxy comes from `chrome_command`).
A Chrome the run did not open is still never opened or closed. The
"Chrome open" box is not shown again on the retry. Test:
`test_cdp_browser.py` (close → port quiet → launch again → close).
- **Gitea:** one overall snapshot update at the end of a day, when the
operator asks (from the clone `D:\ecw-charge-validation`; operator
pushes; 2026-10-26: `ba15a57` → `120fd68`).