nodejs / nodejs/node

Error [ERR_INTERNAL_ASSERTION]: Unexpected module status 0. Cannot require() ES Module ... because it is not yet fully loaded.

Aperta
#62,130 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

esm
Lingua principale
JavaScript
Stelle
122k
Fork
37.4k
Merge medio
4g 3h
PR unite (30g)
272

Descrizione

Version

25.8.0

Platform
Linux nic-desktop 6.17.0-14-generic #14-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan  9 17:01:16 UTC 2026 x86_64 GNU/Linux
Subsystem

require(esm)

What steps will reproduce the bug?
  1. Clone https://github.com/nicolo-ribaudo/babel-polyfills/tree/nodejs-bug
  2. Run yarn && yarn build
  3. Run yarn jest es-shims

Note that this is not using Jest's vm-based ESM support. It's using jest-light-runner to run directly in native Node.js ESM.

How often does it reproduce? Is there a required condition?

Consistently. Note that if I run only one test (yarn jest es-shims -t "tepmlate tag") it does not fail.

What is the expected behavior? Why is that the expected behavior?

That it does not tell me to submit a bug report :P

What do you see instead?
    Error [ERR_INTERNAL_ASSERTION]: [BABEL]: Unexpected module status 0. Cannot require() ES Module /home/nic/Documents/dev/github.com/babel/babel-polyfills/packages/babel-plugin-polyfill-es-shims/lib/index.js because it is not yet fully loaded.
    This may be caused by a race condition if the module is simultaneously dynamically import()-ed via Promise.all().
    Try await-ing the import() sequentially in a loop instead.
     (From /home/nic/Documents/dev/github.com/babel/babel-polyfills/packages/babel-plugin-polyfill-es-shims/test/node_modules/@@/babel-plugin-polyfill-es-shims.js in non-loader-hook thread)
    This is caused by either a bug in Node.js or incorrect usage of Node.js internals.
    Please open an issue with this stack trace at https://github.com/nodejs/node/issues
     (While processing: /home/nic/Documents/dev/github.com/babel/babel-polyfills/packages/babel-plugin-polyfill-es-shims/test/node_modules/@@/babel-plugin-polyfill-es-shims.js)
        at assert.fail (node:internal/assert:17:9)
        at ModuleLoader.importSyncForRequire (node:internal/modules/esm/loader:358:16)
        at loadESMFromCJS (node:internal/modules/cjs/loader:1620:24)
        at Module._compile (node:internal/modules/cjs/loader:1785:5)
        at Object..js (node:internal/modules/cjs/loader:1934:10)
        at Module.load (node:internal/modules/cjs/loader:1524:32)
        at Module._load (node:internal/modules/cjs/loader:1326:12)
        at TracingChannel.traceSync (node:diagnostics_channel:328:14)
        at wrapModuleLoad (node:internal/modules/cjs/loader:245:24)
        at Module.require (node:internal/modules/cjs/loader:1547:12)
        at require (node:internal/modules/helpers:152:16)
        at Object.<anonymous> (/home/nic/Documents/dev/github.com/babel/babel-polyfills/packages/babel-plugin-polyfill-es-shims/test/node_modules/@@/babel-plugin-polyfill-es-shims.js:1:18)
        at Module._compile (node:internal/modules/cjs/loader:1803:14)
        at Object..js (node:internal/modules/cjs/loader:1934:10)
        at Module.load (node:internal/modules/cjs/loader:1524:32)
        at Module._load (node:internal/modules/cjs/loader:1326:12)
        at TracingChannel.traceSync (node:diagnostics_channel:328:14)
        at wrapModuleLoad (node:internal/modules/cjs/loader:245:24)
        at Module.require (node:internal/modules/cjs/loader:1547:12)
        at require (node:internal/modules/helpers:152:16)
Additional information

No response

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci il fallimento con i comandi babel-polyfills indicati nell’issue, quindi parti da ModuleLoader.importSyncForRequire in node:internal/modules/esm/loader e dalle voci correlate dello stack del loader CommonJS. Confronta il comportamento di un singolo test con quello dell’intera suite e usa il percorso require(esm) segnalato per tracciare lo stato del caricamento dei moduli. Il lavoro è terminato quando la riproduzione fornita non solleva più l’assertion interna.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript
Ambito
backend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.