firecracker-microvm/firecracker · error
Error receiving API request.
Error message
Error receiving API request.
What it means
Error "Error receiving API request." thrown in firecracker-microvm/firecracker.
Source
Thrown at src/firecracker/src/api_server_adapter.rs:110
.map_err(|_| ())
.expect("one-shot channel closed");
}
fn handle_request(&mut self, event_manager: &mut EventManager) {
if let Some(api_request) = self.request.take() {
let request_is_pause = *api_request == VmmAction::Pause;
self._handle_request(*api_request, event_manager);
// If the latest req is a pause request, temporarily switch to a mode where we
// do blocking `recv`s on the `from_api` receiver in a loop, until we get
// unpaused. The device emulation is implicitly paused since we do not
// relinquish control to the event manager because we're not returning from
// `process`.
if request_is_pause {
// This loop only attempts to process API requests, so things like the
// metric flush timerfd handling are frozen as well.
loop {
let req = self.from_api.recv().expect("Error receiving API request.");
let req_is_resume = *req == VmmAction::Resume;
self._handle_request(*req, event_manager);
if req_is_resume {
break;
}
}
}
}
}
}
impl MutEventSubscriber for ApiServerAdapter {
/// Handle a read event (EPOLLIN).
fn process(&mut self, event: Events, _: &mut EventOps) {
let source = event.fd();
let event_set = event.event_set();
if source == self.api_event_fd.as_raw_fd() && event_set == EventSet::IN {
let _ = self.api_event_fd.read();View on GitHub (pinned to 0a745def42)
Solutions
- Check the API socket and event loop for errors that break request reception (closed fd, epoll error).
- Verify the API thread did not exit or panic before the request arrived.
When it happens
Trigger: Thrown at src/firecracker/src/api_server_adapter.rs:110 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/a70053a394843558.
Report an issue: GitHub.