From dfa63bce9d32f7a1aa2b2c0c6b409d521839e892 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Mar 2026 20:21:20 +0000 Subject: [PATCH 1/2] Initial plan From 0f98de9f51bbf2e6b8bd7a28335a4962608e3b78 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Mar 2026 20:37:04 +0000 Subject: [PATCH 2/2] Fix OTEL SDK teardown errors with vitest 4.1.0 upgrade Co-authored-by: peter-leonov-ch <209667683+peter-leonov-ch@users.noreply.github.com> --- vitest.node.otel.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/vitest.node.otel.js b/vitest.node.otel.js index 49a57216..7a011c5e 100644 --- a/vitest.node.otel.js +++ b/vitest.node.otel.js @@ -28,6 +28,25 @@ const sdk = new NodeSDK({ }) sdk.start() -export default sdk + +// Wrap shutdown/forceFlush to gracefully handle unavailable OTEL endpoints +// (e.g. when OTEL_EXPORTER_OTLP_ENDPOINT is not set in the environment) +// Without this, vitest 4.1+ would propagate the ECONNREFUSED teardown error +// and report the test run as failed even if all tests passed. +export default new Proxy(sdk, { + get(target, prop, receiver) { + const value = Reflect.get(target, prop, receiver) + if ((prop === 'shutdown' || prop === 'forceFlush') && typeof value === 'function') { + return async (...args) => { + try { + await value.apply(target, args) + } catch (e) { + console.warn(`[OTEL] SDK ${String(prop)} error (endpoint may not be available):`, e.message) + } + } + } + return value + }, +}) console.log('OTEL for Vitest initialized')