Skip to content

Caught errors are logged to stderr in Vitest 4.0.6+ #9291

@NooryA

Description

@NooryA

Describe the bug

Starting from Vitest 4.0.7, errors that are intentionally thrown and properly caught by error boundaries or test assertions are being logged to the stderr.

This creates significant noise in test output when testing error handling scenarios. This behavior did not occur in Vitest versions prior to 4.0.7.

Reproduction

https://github.com/NooryA/Vitest-Error-Issue

When you clone the repo, and run npm test with Vitest v4.0.6, no error stack trace will be printed.

But if you use Vitest v4.0.7 and onwards, the following will be printed

Error: Uncaught [Error: expected error from React component] at reportException (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:66:24) at innerInvokeEventListeners (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:353:9) at invokeEventListeners (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3) at HTMLUnknownElementImpl._dispatch (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9) at HTMLUnknownElementImpl.dispatchEvent (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17) at HTMLUnknownElement.dispatchEvent (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34) at Object.invokeGuardedCallbackDev (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:4213:16) at invokeGuardedCallback (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:4277:31) at beginWork$1 (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:27490:7) at performUnitOfWork (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:26599:12) Error: expected error from React component at /home/nsadique/vitest-dummy/repro.test.tsx:16:15 at basicStateReducer (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:15721:41) at updateReducer (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:15845:22) at updateState (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:16185:10) at Object.useState (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:17096:16) at useState (/home/nsadique/vitest-dummy/node_modules/react/cjs/react.development.js:1622:21) at ComponentThatThrows (/home/nsadique/vitest-dummy/repro.test.tsx:12:24) at renderWithHooks (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:15486:18) at updateFunctionComponent (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:19617:20) at beginWork (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:21640:16) Error: Uncaught [Error: expected error from React component] at reportException (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:66:24) at innerInvokeEventListeners (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:353:9) at invokeEventListeners (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3) at HTMLUnknownElementImpl._dispatch (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9) at HTMLUnknownElementImpl.dispatchEvent (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17) at HTMLUnknownElement.dispatchEvent (/home/nsadique/vitest-dummy/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34) at Object.invokeGuardedCallbackDev (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:4213:16) at invokeGuardedCallback (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:4277:31) at beginWork$1 (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:27490:7) at performUnitOfWork (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:26599:12) Error: expected error from React component at /home/nsadique/vitest-dummy/repro.test.tsx:16:15 at basicStateReducer (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:15721:41) at updateReducer (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:15845:22) at updateState (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:16185:10) at Object.useState (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:17096:16) at useState (/home/nsadique/vitest-dummy/node_modules/react/cjs/react.development.js:1622:21) at ComponentThatThrows (/home/nsadique/vitest-dummy/repro.test.tsx:12:24) at renderWithHooks (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:15486:18) at updateFunctionComponent (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:19617:20) at beginWork (/home/nsadique/vitest-dummy/node_modules/react-dom/cjs/react-dom.development.js:21640:16)

System Info

System:
    OS: Linux 6.17 Arch Linux
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
    Memory: 21.02 GB / 31.00 GB
    Container: Yes
    Shell: 5.3.3 - /usr/bin/bash
  Binaries:
    Node: 24.11.0 - /home/nsadique/.nvm/versions/node/v24.11.0/bin/node
    npm: 11.6.1 - /home/nsadique/.nvm/versions/node/v24.11.0/bin/npm
  Browsers:
    Chromium: 142.0.7444.175
  npmPackages:
    @vitejs/plugin-react: ^4.3.4 => 4.7.0 
    vitest: 4.0.15 => 4.0.15

Used Package Manager

npm

Validations

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions