From d8f97aa676d15f19438b28bd47f17ff07b8f8447 Mon Sep 17 00:00:00 2001 From: "Sakamoto, Kazunori" Date: Sat, 15 Aug 2026 22:27:20 +0900 Subject: [PATCH] fix(wrangler): keep request-scoped proxy errors non-fatal --- .changeset/tidy-pandas-smile.md | 5 ++++ .../startDevWorker/ProxyController.test.ts | 23 ++++++++++++++++++- .../src/api/startDevWorker/ProxyController.ts | 5 +++- 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 .changeset/tidy-pandas-smile.md diff --git a/.changeset/tidy-pandas-smile.md b/.changeset/tidy-pandas-smile.md new file mode 100644 index 00000000000..bb37096c5e1 --- /dev/null +++ b/.changeset/tidy-pandas-smile.md @@ -0,0 +1,5 @@ +--- +"wrangler": patch +--- + +Keep the local development server running when proxying an individual request fails. diff --git a/packages/wrangler/src/__tests__/api/startDevWorker/ProxyController.test.ts b/packages/wrangler/src/__tests__/api/startDevWorker/ProxyController.test.ts index 3af59552994..8d3af87f571 100644 --- a/packages/wrangler/src/__tests__/api/startDevWorker/ProxyController.test.ts +++ b/packages/wrangler/src/__tests__/api/startDevWorker/ProxyController.test.ts @@ -4,7 +4,28 @@ import { FakeBus } from "../../helpers/fake-bus"; import { mockConsoleMethods } from "../../helpers/mock-console"; describe("ProxyController", () => { - mockConsoleMethods(); + const std = mockConsoleMethods(); + + test("request-scoped ProxyWorker errors are logged without stopping dev", ({ + expect, + }) => { + const bus = new FakeBus(); + const controller = new ProxyController(bus); + + controller.onProxyWorkerMessage({ + type: "error", + error: { + name: "Error", + message: "Network connection lost.", + stack: "Error: Network connection lost.", + }, + }); + + expect(bus.events).toEqual([]); + expect(std.err).toContain( + "Error proxying request to the local Worker: Network connection lost." + ); + }); test("Runtime.exceptionThrown dispatches a typed runtimeError event", async ({ expect, diff --git a/packages/wrangler/src/api/startDevWorker/ProxyController.ts b/packages/wrangler/src/api/startDevWorker/ProxyController.ts index d507f29bcbb..6045b94447c 100644 --- a/packages/wrangler/src/api/startDevWorker/ProxyController.ts +++ b/packages/wrangler/src/api/startDevWorker/ProxyController.ts @@ -475,7 +475,10 @@ export class ProxyController extends Controller { break; case "error": - this.emitErrorEvent("Error inside ProxyWorker", message.error); + logger.error( + "Error proxying request to the local Worker:", + message.error.message + ); break; case "debug-log":