firecracker-microvm/firecracker · error
Cannot create API kill switch.
Error message
Cannot create API kill switch.
What it means
Error "Cannot create API kill switch." thrown in firecracker-microvm/firecracker.
Source
Thrown at src/firecracker/src/api_server_adapter.rs:170
#[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();
return Err(ApiServerError::FailedToBindSocket(sock_path));
}View on GitHub (pinned to 0a745def42)
Solutions
- Check the process file-descriptor limit; eventfd creation for the kill switch fails on fd exhaustion.
- Verify eventfd creation is permitted by the active seccomp filter.
When it happens
Trigger: Thrown at src/firecracker/src/api_server_adapter.rs:170 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/3bbdbcd86dde83b5.
Report an issue: GitHub.