Have you used AI?
Yes
Bug Description
Webpack crashes during bundle generation when an unused CommonJS namespace contains a function that reads one of its own exports. The reduced reproduction uses three small source files and has no runtime dependencies.
The error occurs with production usedExports optimization and a side-effect-free package:
Self-reference dependency has unused export name: This should not happen
Link to Minimal Reproduction and step to reproduce
https://stackblitz.com/edit/webpack-self-reference-repro?file=README.md&view=editor
Steps:
- Run
pnpm install.
- Run
pnpm run build.
- See the error from
src/utility.cjs.
Optionally, run pnpm run build:without-tree-shaking and see how it succeeds.
Expected Behavior
Webpack should tree-shake or retain the unused CommonJS namespace and complete the build.
Actual Behavior
Webpack aborts during bundle generation:
ERROR in ./src/utility.cjs
Self-reference dependency has unused export name: This should not happen
Running pnpm run build:without-tree-shaking succeeds.
Environment
System:
OS: macOS 26.5.1
CPU: (16) arm64 Apple M4 Max
Memory: 586.81 MB / 48.00 GB
Binaries:
Node: 24.16.0 - ~/.local/state/fnm_multishells/55743_1785937995479/bin/node
Yarn: 1.22.22 - /opt/homebrew/bin/yarn
npm: 11.16.0 - /opt/homebrew/bin/npm
pnpm: 11.1.2 - ~/Library/pnpm/bin/pnpm
Browsers:
Chrome: 151.0.7922.76
Safari: 26.5
Packages:
webpack: 5.109.2 => 5.109.2
webpack-cli: 6.0.1 => 6.0.1
Is this a regression?
No
Last Working Version
N/A
Additional Context
The reproduction also fails with webpack 5.26.3, 5.40.0, 5.50.0, 5.60.0, 5.70.0, 5.75.0, and 5.107.2. Disabling optimization.usedExports makes it succeed.
This may be related to #13983 and #18315, but this case does not use workers or usedExports: "global".
The issue was reduced from an OpenTelemetry package graph, but the final reproduction contains no OpenTelemetry dependency.
AI assistance was used to organize this report. I reviewed the reproduction, commands, and technical details.
Have you used AI?
Yes
Bug Description
Webpack crashes during bundle generation when an unused CommonJS namespace contains a function that reads one of its own exports. The reduced reproduction uses three small source files and has no runtime dependencies.
The error occurs with production
usedExportsoptimization and a side-effect-free package:Link to Minimal Reproduction and step to reproduce
https://stackblitz.com/edit/webpack-self-reference-repro?file=README.md&view=editor
Steps:
pnpm install.pnpm run build.src/utility.cjs.Optionally, run
pnpm run build:without-tree-shakingand see how it succeeds.Expected Behavior
Webpack should tree-shake or retain the unused CommonJS namespace and complete the build.
Actual Behavior
Webpack aborts during bundle generation:
Running
pnpm run build:without-tree-shakingsucceeds.Environment
Is this a regression?
No
Last Working Version
N/A
Additional Context
The reproduction also fails with webpack
5.26.3,5.40.0,5.50.0,5.60.0,5.70.0,5.75.0, and5.107.2. Disablingoptimization.usedExportsmakes it succeed.This may be related to #13983 and #18315, but this case does not use workers or
usedExports: "global".The issue was reduced from an OpenTelemetry package graph, but the final reproduction contains no OpenTelemetry dependency.
AI assistance was used to organize this report. I reviewed the reproduction, commands, and technical details.