Repository navigation
Robustness: structured nav errors, proxy observability, retries, timeouts, atomic basic-auth #2323
teodor-georgiev
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Robustness: navigation failures need structure, retries, proxy observability, and timeouts
Found while automating a headed Chromium session on Windows (agent-browser 0.38.1) that repeatedly hung a chat loop. Analysis assisted by design review; filing as one consolidated issue so maintainers can split.
Reproduction evidence
agent-browser --session directtest --ignore-https-errors --headed --json open https://<verified-live-https-endpoint>/returns{"success":false,"error":"Navigation failed: net::ERR_CONNECTION_REFUSED"}while the endpoint serves fine via curl from another path (local egress proxy suspected; endpoint also needs basic auth, which would only 401 after connect).about:blank; the driving chat hangs waiting and must be forcibly stopped. No timeout surfaces to the caller.Proposals (ranked)
phase,netError,retryable, sanitizedurl,attempt, suggested actions. Classify DNS / TCP refusal / proxy tunnel / TLS / timeout / auth / HTTP separately. Today Chromium'serrorTextis reduced toNavigation failed: …, so agents can't tell a dead endpoint from a proxy or cert problem.--proxy-mode direct|system|env|manual,--no-proxy, and a command reporting effective proxy source (redacted), and bypass-list matching. Today the first available ofHTTP_PROXY/HTTPS_PROXY/ALL_PROXYis silently passed to Chrome for all traffic, which explains direct-IP failures and makesERR_TUNNEL_CONNECTION_FAILEDhard to diagnose.agent-browser diagnose <url> --json: from the browser machine test DNS, TCP, proxy CONNECT, TLS, and a browser navigation; report where the path failed.doctorchecks the install, not the exact target and route.open --retries N --retry-delay 500ms --retry-max-delay 5swith jitter + total deadline; retry only transient codes on top-level GET; return attempt history. Retryability should key off proposal 1's classification (never retry auth/policy/cert).open <url> --http-user USER --http-password-stdinbacked by the existing credential handler; keep passwords out of URLs, argv, logs, JSON. Today it takesopen(no URL) +set credentials+ navigate, inviting accidental unauthenticated first requests.open <url> --wait-until none|domcontentloaded|load|networkidle --timeout <duration>; reject unknown nav flags instead of ignoring; on lifecycle timeout after commit returncommitted: true+ final URL. Prevents hung chats with no surfacing timeout.Effort scale: S ≤1 day, M 2–4 days, L 5–8 days.
Environment: Windows x86_64, agent-browser 0.38.1, local Chrome, headed session via persistent daemon.
All reactions