firecracker-microvm/firecracker · error

vcpu channel unexpectedly closed

Error message

vcpu channel unexpectedly closed

What it means

Error "vcpu channel unexpectedly closed" thrown in firecracker-microvm/firecracker.

Source

Thrown at src/vmm/src/vstate/vcpu.rs:275

                    self.kvm_vcpu.kvmclock_ctrl();
                    return VcpuRunState::Paused;
                }
                // Emulation errors lead to vCPU exit.
                Err(_) => return self.exit(FcExitCode::GenericError),
            }
        }

        // By default don't change state.
        let mut state = VcpuRunState::Running;

        // Break this emulation loop on any transition request/external event.
        match self.event_receiver.try_recv() {
            // Running ---- Pause ----> Paused
            Ok(VcpuEvent::Pause) => {
                // Nothing special to do.
                self.response_sender
                    .send(VcpuResponse::Paused)
                    .expect("vcpu channel unexpectedly closed");

                #[cfg(target_arch = "x86_64")]
                self.kvm_vcpu.kvmclock_ctrl();

                // Move to 'paused' state.
                state = VcpuRunState::Paused;
            }
            Ok(VcpuEvent::Resume) => {
                self.response_sender
                    .send(VcpuResponse::Resumed)
                    .expect("vcpu channel unexpectedly closed");
            }
            // SaveState cannot be performed on a running Vcpu.
            Ok(VcpuEvent::SaveState) => {
                self.response_sender
                    .send(VcpuResponse::NotAllowed(String::from(
                        "save/restore unavailable while running",
                    )))

View on GitHub (pinned to 81b38b9dad)

Solutions

  1. Investigate why the vCPU thread's channel closed; usually the vCPU thread exited or panicked first.
  2. Handle the closed channel as a vCPU-exit signal and shut the VM down cleanly.

When it happens

Trigger: Thrown at src/vmm/src/vstate/vcpu.rs:275 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of firecracker-microvm/firecracker@81b38b9dad (2026-08-19). Data as JSON: /api/errors/f2aa959d682e3d41. Report an issue: GitHub.