lima-vm/lima · warning

unimplemented by the krunkit driver

Error message

unimplemented by the krunkit driver

What it means

The krunkit driver ( Lima's driver on macOS arm64 that runs the VM via libkrun/krunkit) does not implement VM snapshot operations or display-password/connection APIs. The sentinel `errUnimplemented` is returned by CreateSnapshot, ApplySnapshot, DeleteSnapshot, ListSnapshots, ChangeDisplayPassword and DisplayConnection to signal that the backend has no support for these features. Callers get this error whenever they invoke these limactl commands on an instance whose VM type resolves to the krunkit driver.

Source

Thrown at pkg/driver/krunkit/errors_darwin_arm64.go:8

// SPDX-FileCopyrightText: Copyright The Lima Authors
// SPDX-License-Identifier: Apache-2.0

package krunkit

import "errors"

var errUnimplemented = errors.New("unimplemented by the krunkit driver")

View on GitHub (pinned to dd909d0973)

Solutions

  1. Do not use snapshot commands on krunkit instances; switch the instance to a driver that supports snapshots (e.g. vz or qemu) by creating a new instance with `vmType: vz` or `qemu`.
  2. Check driver capability before calling: wrap the snapshot calls and treat `errors.Is(err, errUnimplemented)` as 'unsupported feature', not a transient failure.
  3. Export/copy instance data manually (e.g. copy the instance dir and disk image) instead of snapshotting, then restore manually.
  4. Update Lima in case a newer krunkit driver implements the feature; check the Lima changelog.

Example fix

// before
if err := inst.Driver.CreateSnapshot(ctx, tag); err != nil {
    return err
}
// after
if err := inst.Driver.CreateSnapshot(ctx, tag); err != nil {
    if errors.Is(err, krunkit.ErrUnimplemented) {
        log.Warnf("snapshots unsupported by driver %q; skipping", inst.VMType)
        return nil
    }
    return err
}
Defensive patterns

Strategy: try-catch

Validate before calling

// Go: check instance vmType before attempting snapshot ops
if inst.VMType == "krunkit" {
    return fmt.Errorf("snapshots are not supported with the krunkit driver")
}

Type guard

func supportsSnapshots(vmType string) bool {
    return vmType != "krunkit"
}

Try / catch

if err := d.CreateSnapshot(ctx, tag); err != nil {
    if errors.Is(err, krunkit.ErrUnimplemented) {
        // treat as unsupported feature, not a failure
        return nil
    }
    return err
}

Prevention

When it happens

Trigger: Running `limactl snapshot create/apply/delete/list`, or any code path that calls Driver.CreateSnapshot/ApplySnapshot/DeleteSnapshot/ListSnapshots, on an instance started with the krunkit driver; also calling ChangeDisplayPassword or DisplayConnection for a krunkit instance.

Common situations: A user of snapshot workflows (e.g. pre-upgrade checkpoints) whose instance config selects vmType krunkit on macOS arm64; CI scripts that iterate snapshots across drivers; automation that assumes snapshot parity with qemu/vz drivers.

Related errors


AI-assisted analysis of lima-vm/lima@dd909d0973 (2026-09-01). Data as JSON: /api/errors/2a3b42f588a1dc78. Report an issue: GitHub.