oven-sh/bun · error
Failed to create waker
Error message
Failed to create waker
What it means
Error "Failed to create waker" thrown in oven-sh/bun.
Source
Thrown at src/bundler/BundleThread.rs:194
// `UnboundedQueue::push` takes `&self` (lock-free MPSC). `Waker::wake` takes
// `&self` on all platforms and only reads a Copy field (eventfd, mach port,
// `WindowsLoop` pointer) to pass to a wake call that is safe from any thread
// (eventfd write, mach_msg send, uv_async_send), so the `&Waker` autoref is
// sound alongside `wait(&self)` in `thread_main` and other `enqueue` callers.
unsafe {
(*instance).queue.push(completion);
(*instance).waker.wake();
}
}
unsafe fn thread_main(instance: *mut Self) {
Output::Source::configure_named_thread(zstr!("Bundler"));
// SAFETY: `waker` is written exactly once here, before `ready_event.set()`
// releases any thread that could call `enqueue` (which reads `waker`).
unsafe {
core::ptr::addr_of_mut!((*instance).waker)
.write(Async::Waker::init().unwrap_or_else(|_| panic!("Failed to create waker")));
}
// Unblock the calling thread so it can continue.
// SAFETY: raw-ptr field projection; spawning thread is blocked in `ready_event.wait()`.
unsafe { (*instance).ready_event.set() };
// The libuv Timer lives on stack for the lifetime of this never-returning fn.
// It MUST be declared at function scope (not inside the `#[cfg(windows)] { ... }`
// block below) because `timer.init()`/`timer.start()` register `&timer`'s address
// into the uv loop's intrusive handle queue / timer min-heap, and `waker.wait()`
// (→ `uv_run`) in the `loop {}` below dereferences that address.
#[cfg(windows)]
let mut timer: bun_sys::windows::libuv::Timer = bun_core::ffi::zeroed();
#[cfg(windows)]
{
// SAFETY: raw place read of `waker.loop_.uv_loop` (Copy ptr); field is
// write-once in `Waker::init()` above and never mutated by `wake()`, so a
// concurrent `enqueue()` (possible now that `ready_event.set()` has fired)View on GitHub (pinned to 8c5296ac45)
When it happens
Trigger: Thrown at src/bundler/BundleThread.rs:194 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of oven-sh/bun@8c5296ac45 (2026-08-16).
Data as JSON: /api/errors/f7ecb71d2cea1e44.
Report an issue: GitHub.