firecracker-microvm/firecracker · error
API thread spawn failed.
Error message
API thread spawn failed.
What it means
Error "API thread spawn failed." thrown in firecracker-microvm/firecracker.
Source
Thrown at src/firecracker/src/api_server_adapter.rs:214
.try_clone()
.expect("Failed to clone API kill switch");
server
.add_kill_switch(api_kill_switch_clone)
.expect("Cannot add HTTP server kill switch");
// Start the separate API thread.
let api_thread = thread::Builder::new()
.name("fc_api".to_owned())
.spawn(move || {
ApiServer::new(to_vmm, from_vmm, to_vmm_event_fd).run(
server,
process_time_reporter,
&api_seccomp_filter,
api_payload_limit,
);
})
.expect("API thread spawn failed.");
let mut event_manager = EventManager::new().expect("Unable to create EventManager");
// Create the firecracker metrics object responsible for periodically printing metrics.
let firecracker_metrics = Arc::new(Mutex::new(super::metrics::PeriodicMetrics::new()));
event_manager.add_subscriber(firecracker_metrics.clone());
// Configure, build and start the microVM.
let build_result = match config_json {
Some(json) => super::build_microvm_from_json(
seccomp_filters,
&mut event_manager,
json,
instance_info,
boot_timer_enabled,
pci_enabled,
mmds_size_limit,
metadata_json,View on GitHub (pinned to 0a745def42)
Solutions
- Check system thread limits (ulimit -u, cgroup pids.max) and available memory; thread spawn fails on resource exhaustion.
- Inspect the OS error from the failed spawn for the precise cause.
When it happens
Trigger: Thrown at src/firecracker/src/api_server_adapter.rs:214 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/d13e6652d233f981.
Report an issue: GitHub.