Skip to content

feat(tools/web): bucket 5xx separately with a transient-retry hint#676

Merged
esengine merged 1 commit into
mainfrom
feat/web-error-5xx-hint
May 11, 2026
Merged

feat(tools/web): bucket 5xx separately with a transient-retry hint#676
esengine merged 1 commit into
mainfrom
feat/web-error-5xx-hint

Conversation

@esengine

Copy link
Copy Markdown
Owner

Summary

Extends the actionable-error work from #632 with a dedicated 5xx bucket. Before this, generic 5xx fell through to the catch-all webErrors.status / webErrors.fetchStatus message — which advises rephrasing the query or switching engines, neither of which helps when the upstream server is just temporarily broken.

After:

  • web_search 503 — try: open the search URL in a browser; if it loads this is transient and a retry in 30s may help
  • web_fetch 502 for {url} — try: open the URL in a browser; if it loads this is transient and a retry in 30s may help

searchStatusError / fetchStatusError get one extra branch each (status >= 500 && status <= 599); EN + zh-CN + TranslationSchema updated in step.

Credit to @MyPrototypeWhat#671 surfaced this gap (their PR added a 5xx bucket alongside a parallel re-do of #632's 429/403 work). #671 is closed as superseded, but the 5xx insight + the 503 test case land here.

Test plan

  • npm run verify — 170 files / 2628 tests passing
  • Existing webSearch 503 test tightened from /web_search 503.*try:/ to assert on the new retry in 30s substring
  • New parallel webFetch 502 test in the same shape

#632 actionable-error work stopped at 429 + 403 — generic 5xx still
fell through to the catch-all "rephrase the query / switch engine"
message, which is the wrong advice for a transient server-side
failure. Add serverError5xx + fetchServerError5xx pointing the model
at a browser sanity-check and a 30s retry instead.

Existing webSearch 503 test tightened from `/web_search 503.*try:/`
to assert on the new `retry in 30s` substring; a parallel webFetch
502 test added in the same shape.

Credit to @MyPrototypeWhat#671 surfaced the gap and the 503 test
case lands with this PR.
@esengine esengine merged commit cd9f12a into main May 11, 2026
2 checks passed
@esengine esengine deleted the feat/web-error-5xx-hint branch May 11, 2026 12:12
@MyPrototypeWhat

Copy link
Copy Markdown

Thanks for picking this up cleanly 🙏

ChasLui pushed a commit to ChasLui/DeepSeek-Reasonix that referenced this pull request May 23, 2026
…sengine#676)

esengine#632 actionable-error work stopped at 429 + 403 — generic 5xx still
fell through to the catch-all "rephrase the query / switch engine"
message, which is the wrong advice for a transient server-side
failure. Add serverError5xx + fetchServerError5xx pointing the model
at a browser sanity-check and a 30s retry instead.

Existing webSearch 503 test tightened from `/web_search 503.*try:/`
to assert on the new `retry in 30s` substring; a parallel webFetch
502 test added in the same shape.

Credit to @MyPrototypeWhatesengine#671 surfaced the gap and the 503 test
case lands with this PR.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants