lima-vm/lima · error

networks.yaml '%s' configuration is only supported on macOS

Error message

networks.yaml '%s' configuration is only supported on macOS right now

What it means

Lima's vz driver refuses to start when a lima.yaml `networks` entry references a named network (`networks.yaml` config, i.e. a `Lima:` field) because the vz driver only implements that on macOS. The check exists in vm_darwin.go, so hitting it means the vz driver path was reached on a non-darwin GOOS (or the check guards a shared code path) and the network definition required socketVMNet-style macOS bridging.

Source

Thrown at pkg/driver/vz/vm_darwin.go:489

				if i == firstUsernetIndex {
					continue
				}
				vzSock, err := usernet.Sock(nw.Lima, usernet.FDSock)
				if err != nil {
					return err
				}
				clientFile, err := PassFDToUnix(vzSock)
				if err != nil {
					return err
				}
				networkConfig, err := newVirtioFileNetworkDeviceConfiguration(clientFile, nw.MACAddress)
				if err != nil {
					return err
				}
				configurations = append(configurations, networkConfig)
			} else {
				if runtime.GOOS != "darwin" {
					return fmt.Errorf("networks.yaml '%s' configuration is only supported on macOS right now", nw.Lima)
				}
				socketVMNetOk, err := nwCfg.IsDaemonInstalled(networks.SocketVMNet)
				if err != nil {
					return err
				}
				if socketVMNetOk {
					logrus.Debugf("Using socketVMNet (%#q)", nwCfg.Paths.SocketVMNet)
					sock, err := networks.Sock(nw.Lima)
					if err != nil {
						return err
					}

					clientFile, err := DialQemu(ctx, sock)
					if err != nil {
						return err
					}
					networkConfig, err := newVirtioFileNetworkDeviceConfiguration(clientFile, nw.MACAddress)
					if err != nil {

View on GitHub (pinned to dd909d0973)

Solutions

  1. Remove the `lima:`-named network entry from the instance's lima.yaml, or switch to a driver-supported network mode (e.g. default slirp/ngveth) on this OS
  2. Run the instance on a macOS host, where the vz driver supports networks.yaml networks (install socket-vmnet if bridging is needed)
  3. Use the qemu driver instead of vz if you need that network topology on this platform

Example fix

// before
networks:
  - lima: shared
// after
networks: []   # or use default user-mode networking on non-macOS
Defensive patterns

Strategy: validation

Validate before calling

if runtime.GOOS != "darwin" {
    for _, nw := range cfg.Networks {
        if nw.Lima != "" {
            return fmt.Errorf("named network %q requires macOS with the vz driver", nw.Lima)
        }
    }
}

Try / catch

if err := startInstance(cfg); err != nil {
    if strings.Contains(err.Error(), "only supported on macOS") {
        // fall back to default networking or qemu driver
    }
}

Prevention

When it happens

Trigger: Creating/starting an instance with the vz driver where `networks` contains an entry with a `lima:` name (a networks.yaml-defined network) on a platform where runtime.GOOS != darwin; attachNetwork is invoked from createVM.

Common situations: Copying a Linux/macOS co-developed lima.yaml that uses a shared named network onto a non-macOS host; CI matrices running the same template across OSes; stale config referencing networks only valid for vz on macOS.

Related errors


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