Repository navigation
Say why a page never loaded instead of calling every failure a timeout - #17
Merged
Merged
Conversation
Playwright logged any navigation error as "Timeout loading" with no reason; the 2026-10-20 topic canary failed four times within 64 ms of starting the navigation and left nothing to diagnose. All three engines now log the error's first line (credentials masked), call it a timeout only when it is one, and record it as load_error in the sidecar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CKsd7q25N19WzUZjrAdzx8
jehrr
force-pushed
the
fix/canary-load-error-2026-10-20
branch
from
October 20, 2026 19:32
2094b0d to
fb5bb5f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
In canary run 39479200544 (2026-10-20), the question run through
QUORA_PROXYpassed: 262 rows, complete. The topic run in the same job then exited 5. The log shows:The first failure came 64 ms after the navigation started. The navigation timeout is 60 s, so this was not a timeout. The three retries also failed straight away; the gaps between them were the 30/60/120 s backoff. Playwright's
gotoraised aPWErrorthat is not a proxy error the engine recognises. The engine logged it as "Timeout" and dropped the message. The sidecar saidpage_load_timeoutand nothing more, so this run's failure cannot be diagnosed after the fact. Selenium and pyppeteer printedstr(e)[:120]without masking credentials.Change (all three engines)
Timeout loadingonly when the driver raised its timeout type. Any other error is logged asNavigation failed loading. Both lines include the error's first line, with proxy credentials masked by the engine's existing_mask_credentials.Gave up loading ... after N attempt(s): <reason>line names the reason too.PageOutcome.load_error. The sidecar gainsload_error: the reason for the first page that never loaded, ornull.stop_reasonare unchanged.Evidence
load_failed,load_errorequal to the masked first line, the right label, the reason in both the retry and the give-up line, no credential in the log or the outcome, and no solve bought. A source check covers the sidecar key in each engine.smoke_test.py: OK in a core-only venv (driving skipped). Also OK in separate playwright, selenium and pyppeteer venvs (pip only, no browser download), with each engine's driven checks shown as PASS."Timeout"turns "Error is logged as 'Navigation failed loading'" red.outcome.load_error = load_errorturns both "... -> load_failed with the reason on the outcome" checks red..github/ci_checks.py --all: ok.What this does not establish
This PR does not say why the topic navigation failed on 2026-10-20. That error text was discarded. The next canary run will record it in the log and in
canary_topic.meta.json.🤖 Generated with Claude Code
https://claude.ai/code/session_01CKsd7q25N19WzUZjrAdzx8