An import used only as a type was being elided or preserved depending on flags nobody could keep straight, and the bundler saw a different module graph from the compiler.
// with verbatimModuleSyntax, what you write is what is emitted
import type { Order } from './order' // erased
import { formatOrder } from './order' // kept
// and the error it produces on the ambiguous form
import { Order, formatOrder } from './order'
// error if Order is only used as a type:
// 'Order' is a type and must be imported using a type-only
// import when 'verbatimModuleSyntax' is enabled
Forcing the distinction to be explicit is what makes the output predictable, and the migration is mechanical — the compiler names every file. What it fixed for us was a module with a side effect that was being elided because the only import from it happened to be a type, which had produced a bug that took two days in 2022.