fix(web): keep a timeout a timeout in staleOr and navigationStaleOr
Merged
KB
6d ago+29+29+01234567890123456789-2-2-0123456789
staleOr and navigationStaleOr are meant to keep a Playwright timeout a timeout, but both matched their stale patterns first. A TimeoutError whose call log quoted resolved to hidden, not attached, or frame was detached became a retryable NODE_STALE, so the runner retried or re-read after a budget that had already run out. The timeout check now runs first in both. Added tests with real call-log text.
Verified
Ran locally: the new tests fail on main with NODE_STALE and pass with the fix. The web unit suite passes and pnpm check is green. Three browser-launch integration tests time out on my machine, and one of them does the same on main.
| main | branch | |
|---|---|---|
staleOr, timeout with resolved to hidden or not attached in its call log | NODE_STALE, retryable | OPERATION_TIMEOUT, not retryable |
navigationStaleOr, timeout with frame was detached in its call log | NODE_STALE, retryable | OPERATION_TIMEOUT, not retryable |