firecracker-microvm/firecracker · error
Cannot create API Eventfd.
Error message
Cannot create API Eventfd.
What it means
Error "Cannot create API Eventfd." thrown in firecracker-microvm/firecracker.
Source
Thrown at src/firecracker/src/api_server_adapter.rs:168
}
#[allow(clippy::too_many_arguments)]
pub(crate) fn run_with_api(
seccomp_filters: &mut BpfThreadMap,
config_json: Option<String>,
bind_path: PathBuf,
instance_info: InstanceInfo,
process_time_reporter: ProcessTimeReporter,
boot_timer_enabled: bool,
pci_enabled: bool,
api_payload_limit: usize,
mmds_size_limit: usize,
metadata_json: Option<&str>,
) -> Result<(), ApiServerError> {
// FD to notify of API events. This is a blocking eventfd by design.
// It is used in the config/pre-boot loop which is a simple blocking loop
// which only consumes API events.
let api_event_fd = EventFd::new(libc::EFD_SEMAPHORE).expect("Cannot create API Eventfd.");
// FD used to signal API thread to stop/shutdown.
let api_kill_switch = EventFd::new(libc::EFD_NONBLOCK).expect("Cannot create API kill switch.");
// Channels for both directions between Vmm and Api threads.
let (to_vmm, from_api) = channel();
let (to_api, from_vmm) = channel();
let to_vmm_event_fd = api_event_fd
.try_clone()
.expect("Failed to clone API event FD");
let api_seccomp_filter = seccomp_filters
.remove("api")
.expect("Missing seccomp filter for API thread.");
let mut server = match HttpServer::new(&bind_path) {
Ok(s) => s,
Err(ServerError::IOError(inner)) if inner.kind() == std::io::ErrorKind::AddrInUse => {
let sock_path = bind_path.display().to_string();View on GitHub (pinned to 0a745def42)
Solutions
- Check the process file-descriptor limit; eventfd creation fails when the fd table is exhausted.
- Verify the kernel supports eventfd2 and the call is not blocked by seccomp.
When it happens
Trigger: Thrown at src/firecracker/src/api_server_adapter.rs:168 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of firecracker-microvm/firecracker@0a745def42 (2026-08-19).
Data as JSON: /api/errors/a5e156cc3941c7c9.
Report an issue: GitHub.