From e29730e6731b2fccc03a8be5ee3002023af52bf5 Mon Sep 17 00:00:00 2001 From: GitHub Contributor Date: Sat, 20 Jun 2026 04:15:11 +0800 Subject: [PATCH] fix: add proper error code for proxy timeout and handle missing e.code in error template MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause: When proxy request times out, the error object only had 'status' (408) but no 'code' property, causing the error page to display '【undefined】' in the error code field. This made debugging difficult for users. Fix: 1. Add 'ETIMEOUT' error code to the timeout error object so the error template can display it properly 2. Update error template fallback: use e.code or e.status or 'UNKNOWN' to prevent 'undefined' from appearing in the user-facing error page Impact: Users seeing '【undefined】' in the error page will now see a meaningful error code (e.g., 'ETIMEOUT' or '408'). Closes #638 --- .../mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index 2892686f5a..212ec8cb4d 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -186,6 +186,7 @@ module.exports = function createRequestHandler (createIntercepts, middlewares, e proxyReq.end() proxyReq.destroy() const error = new Error(errorMsg) + error.code = 'ETIMEOUT' error.status = 408 reject(error) }) @@ -343,7 +344,7 @@ module.exports = function createRequestHandler (createIntercepts, middlewares, e }

DevSidecar Error:

-

目标网站请求错误:【${e.code}】 ${e.message}

+

目标网站请求错误:【${e.code || (e.status || 'UNKNOWN')}】 ${e.message}

目标地址:${rOptions.protocol}//${rOptions.hostname}:${rOptions.port}${rOptions.path}

`, ) } catch {