firecracker-microvm/firecracker · error · InvalidAvailIdx

The number of available virtio descriptors {reported_len} is

Error message

The number of available virtio descriptors {reported_len} is greater than queue size: {queue_size}!

What it means

Error "The number of available virtio descriptors {reported_len} is greater than queue size: {queue_size}!" thrown in firecracker-microvm/firecracker.

Source

Thrown at src/vmm/src/devices/mod.rs:30

pub mod acpi;
pub mod legacy;
pub mod pci;
pub mod pseudo;
pub mod virtio;

use crate::devices::virtio::net::metrics::NetDeviceMetrics;
use crate::devices::virtio::queue::{InvalidAvailIdx, QueueError};
use crate::devices::virtio::vsock::VsockError;
use crate::logger::{IncMetric, error};
use crate::vstate::interrupts::InterruptError;

// Function used for reporting error in terms of logging
// but also in terms of metrics of net event fails.
// network metrics is reported per device so we need a handle to each net device's
// metrics `net_iface_metrics` to report metrics for that device.
pub(crate) fn report_net_event_fail(net_iface_metrics: &NetDeviceMetrics, err: DeviceError) {
    if let DeviceError::InvalidAvailIdx(err) = err {
        panic!("{}", err);
    }
    error!("{:?}", err);
    net_iface_metrics.event_fails.inc();
}

#[derive(Debug, thiserror::Error, displaydoc::Display)]
pub enum DeviceError {
    /// Failed to read from the TAP device.
    FailedReadTap,
    /// Failed to signal irq: {0}
    FailedSignalingIrq(#[from] InterruptError),
    /// IO error: {0}
    IoError(io::Error),
    /// Device received malformed payload.
    MalformedPayload,
    /// Device received malformed descriptor.
    MalformedDescriptor,
    /// Error during queue processing: {0}

View on GitHub (pinned to 81b38b9dad)

Solutions

  1. Fix the guest virtio driver to not report more descriptors than the negotiated queue size.
  2. Validate descriptor counts against the queue size before processing the virtqueue.

When it happens

Trigger: Thrown at src/vmm/src/devices/mod.rs:32 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/66d83d59ef0f4d2b. Report an issue: GitHub.