#6010·rollup

Top-level await incompatible with inlineDynamicImports

Author: guybedfordCreated Jul 12, 2025Updated Aug 11, 2026
Labelst¹ 🐞 bugt⁸ ⋅ triage

Rollup Version

4.450.0

Operating System (or Browser)

repl

Node Version (if applicable)

No response

Link To Reproduction

https://rollupjs.org/repl/?version=4.45.0&shareable=JTdCJTIyZXhhbXBsZSUyMiUzQW51bGwlMkMlMjJtb2R1bGVzJTIyJTNBJTVCJTdCJTIyY29kZSUyMiUzQSUyMihhc3luYyUyMGZ1bmN0aW9uJTIwKCklMjAlN0IlNUNuJTIwJTIwYXdhaXQlMjBpbXBvcnQoJy4lMkZxdXguanMnKSUzQiU1Q24lMjAlMjBjb25zb2xlLmxvZyh3YXNtSW5zdGFuY2UpJTNCJTVDbiU3RCkoKSUzQiUyMiUyQyUyMmlzRW50cnklMjIlM0F0cnVlJTJDJTIybmFtZSUyMiUzQSUyMm1haW4uanMlMjIlN0QlMkMlN0IlMjJjb2RlJTIyJTNBJTIyZXhwb3J0JTIwY29uc3QlMjB3YXNtSW5zdGFuY2UlMjAlM0QlMjBhd2FpdCUyMFdlYkFzc2VtYmx5LmNvbXBpbGUoJ2ZvbycpJTNCJTIyJTJDJTIyaXNFbnRyeSUyMiUzQWZhbHNlJTJDJTIybmFtZSUyMiUzQSUyMnF1eC5qcyUyMiU3RCU1RCUyQyUyMm9wdGlvbnMlMjIlM0ElN0IlMjJvdXRwdXQlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJlcyUyMiUyQyUyMmlubGluZUR5bmFtaWNJbXBvcnRzJTIyJTNBdHJ1ZSU3RCU3RCU3RA==

Expected Behaviour

When using top-level await inside of a module that is imported with dynamic import where that dynamically imported module is inlined, the dynamic import promise should wait for the tla completion of the inlined module.

Actual Behaviour

The "next tick" approach of Promise.resolve() in the dynamic import doesn't factor in the tla time.

A simple fix that would avoid the wrapping refactoring might be to have a callback after the inlined tla module executes, which could be used to trigger the dynamic import promise resolution. Alternatively the wrapper work is likely needed to complete TLA support.