diff --git a/src/infra/bonjour-errors.test.ts b/src/infra/bonjour-errors.test.ts index 688335856c4..d102e96284c 100644 --- a/src/infra/bonjour-errors.test.ts +++ b/src/infra/bonjour-errors.test.ts @@ -8,6 +8,12 @@ describe("formatBonjourError", () => { expect(formatBonjourError(err)).toBe("AbortError: timed out"); }); + it("avoids duplicating named errors with blank messages", () => { + const err = new Error(""); + err.name = "AbortError"; + expect(formatBonjourError(err)).toBe("AbortError"); + }); + it("falls back to plain error strings and non-error values", () => { expect(formatBonjourError(new Error(""))).toBe("Error"); expect(formatBonjourError("boom")).toBe("boom"); diff --git a/src/infra/bonjour-errors.ts b/src/infra/bonjour-errors.ts index 7af8e3f3fe1..17ac468ec6e 100644 --- a/src/infra/bonjour-errors.ts +++ b/src/infra/bonjour-errors.ts @@ -1,7 +1,10 @@ export function formatBonjourError(err: unknown): string { if (err instanceof Error) { const msg = err.message || String(err); - return err.name && err.name !== "Error" ? `${err.name}: ${msg}` : msg; + if (err.name && err.name !== "Error") { + return msg === err.name ? err.name : `${err.name}: ${msg}`; + } + return msg; } return String(err); }