From 89405125e6c2320bb2bc19ae06b3b362d5cb8feb Mon Sep 17 00:00:00 2001 From: huynhquangtoan Date: Mon, 9 Mar 2026 15:52:36 +0700 Subject: [PATCH] fix(proxyTest): improve error handling and update default test URL Made-with: Cursor --- src/lib/network/proxyTest.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/lib/network/proxyTest.js b/src/lib/network/proxyTest.js index 62ecde7..402e679 100644 --- a/src/lib/network/proxyTest.js +++ b/src/lib/network/proxyTest.js @@ -1,8 +1,25 @@ import { ProxyAgent, fetch as undiciFetch } from "undici"; -const DEFAULT_TEST_URL = "https://example.com/"; +const DEFAULT_TEST_URL = "https://google.com/"; const DEFAULT_TIMEOUT_MS = 8000; +function getErrorMessage(err) { + if (!err) return "Unknown error"; + const base = err?.message || String(err); + const causeCode = err?.cause?.code || err?.code; + const causeMessage = err?.cause?.message; + + if (causeMessage && causeMessage !== base) { + return causeCode ? `${base}: ${causeMessage} (${causeCode})` : `${base}: ${causeMessage}`; + } + + if (causeCode && !base.includes(causeCode)) { + return `${base} (${causeCode})`; + } + + return base; +} + function normalizeString(value) { if (value === undefined || value === null) return ""; return String(value).trim(); @@ -59,7 +76,7 @@ export async function testProxyUrl({ proxyUrl, testUrl, timeoutMs } = {}) { const message = err?.name === "AbortError" ? "Proxy test timed out" - : err?.message || String(err); + : getErrorMessage(err); return { ok: false, status: 500, error: message }; } finally { clearTimeout(timer);