vitest-dev / vitest-dev/vitest
Regression in 4.1.0-beta.4 in Yarn PnP mode, tests hanging indefinitely on Vite 8
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 17.1k
- Forks
- 2k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 94
Description
Describe the bug
Using Yarn PnP and upgrading Vitest from 4.0.18 to 4.1.0-beta.6 (and Vite to 8.0.0-beta.16) my tests started hanging indefinitely. Upon inspection, this is what the logs showed:
(!) Failed to run dependency scan. Skipping dependency pre-bundling. Error: The following dependencies are imported but could not be resolved:
@opentelemetry/api (imported by .yarn/__virtual__/vitest-virtual-e4efedcc9d/0/cache/vitest-npm-4.1.0-beta.6-795d1e89bc-7e355c49ce.zip/node_modules/vitest/dist/chunks/traces.CCmnQaNT.js)
Are they installed?
at .yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:31099:33
at .yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:23472:15
3:42:12 PM [vite] Internal server error: Failed to resolve import "@opentelemetry/api" from ".yarn/__virtual__/vitest-virtual-e4efedcc9d/0/cache/vitest-npm-4.1.0-beta.6-795d1e89bc-7e355c49ce.zip/node_modules/vitest/dist/chunks/traces.CCmnQaNT.js?v=1267b7c2". Does the file exist?
Plugin: vite:import-analysis
File: .yarn/__virtual__/vitest-virtual-e4efedcc9d/0/cache/vitest-npm-4.1.0-beta.6-795d1e89bc-7e355c49ce.zip/node_modules/vitest/dist/chunks/traces.CCmnQaNT.js?v=1267b7c2:15:26
13 | constructor(options) {
14 | if (options.enabled) {
15 | ..."__vitest_browser_runner__"].wrapDynamicImport(() => import('@opentelemetry/api')).then((api) => {
| ^
16 | this.#otel = {
17 | tracer: api.trace.getTracer(options.tracerName || "vitest"),
at TransformPluginContext._formatLog (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:30104:39)
at TransformPluginContext.error (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:30101:14)
at normalizeUrl (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:27902:18)
at .yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:27965:30
at async Promise.all (index 0)
at TransformPluginContext.transform (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:27933:4)
at EnvironmentPluginContainer.transform (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:29893:14)
at loadAndTransform (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:24542:26)
3:42:12 PM [vite] Internal server error: Failed to resolve import "@opentelemetry/api" from ".yarn/__virtual__/vitest-virtual-e4efedcc9d/0/cache/vitest-npm-4.1.0-beta.6-795d1e89bc-7e355c49ce.zip/node_modules/vitest/dist/chunks/traces.CCmnQaNT.js?v=1267b7c2". Does the file exist?
Plugin: vite:import-analysis
File: .yarn/__virtual__/vitest-virtual-e4efedcc9d/0/cache/vitest-npm-4.1.0-beta.6-795d1e89bc-7e355c49ce.zip/node_modules/vitest/dist/chunks/traces.CCmnQaNT.js?v=1267b7c2:15:26
13 | constructor(options) {
14 | if (options.enabled) {
15 | ..."__vitest_browser_runner__"].wrapDynamicImport(() => import('@opentelemetry/api')).then((api) => {
| ^
16 | this.#otel = {
17 | tracer: api.trace.getTracer(options.tracerName || "vitest"),
at TransformPluginContext._formatLog (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:30104:39)
at TransformPluginContext.error (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:30101:14)
at normalizeUrl (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:27902:18)
at .yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:27965:30
at async Promise.all (index 0)
at TransformPluginContext.transform (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:27933:4)
at EnvironmentPluginContainer.transform (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:29893:14)
at loadAndTransform (.yarn/__virtual__/vite-virtual-c28d10bf5b/0/cache/vite-npm-8.0.0-beta.16-d82505fa41-8f71a52d21.zip/node_modules/vite/dist/node/chunks/node.js:24542:26)
What's important is that I do NOT have openTelemetry enabled.
Setting pnpMode to loose does not help (as it usually does).
Installing @opentelemetry/api in the project does fix the issue, somewhat unsurprisingly.
I have tried other versions of Vitest and 4.1.0-beta.3 was the latest one that didn't have this error coming up in the logs.
Related PR: https://github.com/vitest-dev/vitest/pull/8994
Reproduction
I believe I have provided sufficient information for this bug to be resolved. If I'm mistaken, please let me know!
System Info
System:
OS: macOS 26.3
CPU: (10) arm64 Apple M1 Max
Memory: 834.45 MB / 64.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 24.11.1 - /usr/local/bin/node
Yarn: 4.10.3 - /Users/wojciech.maj/.yarn/switch/bin/yarn
npm: 11.6.2 - /usr/local/bin/npm
Browsers:
Chrome: 144.0.7559.134
Firefox: 141.0.3
Safari: 26.3
Used Package Manager
yarn
Validations
- Follow our Code of Conduct
- Read the Contributing Guidelines.
- Read the docs.
- Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
- The provided reproduction is a minimal reproducible example of the bug.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the hang with Yarn 4 PnP using Vitest 4.1.0-beta.6 and Vite 8.0.0-beta.16, then inspect the logged vitest/dist/chunks/traces.CCmnQaNT.js path and the changes in related PR #8994. Done means tests no longer hang or fail to resolve @opentelemetry/api when OpenTelemetry is disabled and the dependency is not installed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- build-system, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100