{"record":{"id":"d1df31c8f189daa0","repo":"lima-vm/lima","slug":"socket-vmnet-is-not-installed","errorCode":null,"errorMessage":"socket_vmnet is not installed","messagePattern":"socket_vmnet is not installed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/driver/krunkit/krunkit_darwin_arm64.go","lineNumber":154,"sourceCode":"\t\tif nw.Lima != \"\" {\n\t\t\tnwCfg, err := networks.LoadConfig()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tswitch nw.Lima {\n\t\t\tcase networks.ModeUserV2:\n\t\t\t\tsock, err = usernet.Sock(nw.Lima, usernet.QEMUSock)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tmac = limayaml.MACAddress(inst.Dir)\n\t\t\tcase networks.ModeShared, networks.ModeBridged:\n\t\t\t\tsocketVMNetInstalled, err := nwCfg.IsDaemonInstalled(networks.SocketVMNet)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tif !socketVMNetInstalled {\n\t\t\t\t\treturn nil, errors.New(\"socket_vmnet is not installed\")\n\t\t\t\t}\n\t\t\t\tsock, err = networks.Sock(nw.Lima)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tmac = nw.MACAddress\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"invalid network spec %+v\", nw)\n\t\t\t}\n\t\t} else if nw.Socket != \"\" {\n\t\t\tsock = nw.Socket\n\t\t\tmac = nw.MACAddress\n\t\t} else {\n\t\t\treturn nil, fmt.Errorf(\"invalid network spec %+v\", nw)\n\t\t}\n\n\t\tdevice := fmt.Sprintf(\"virtio-net,type=unixstream,path=%s,mac=%s\", sock, mac)\n\t\targs = append(args, \"--device\", device)","sourceCodeStart":136,"sourceCodeEnd":172,"githubUrl":"https://github.com/lima-vm/lima/blob/dd909d0973cd84fa35f9e1693181b4585ea616c1/pkg/driver/krunkit/krunkit_darwin_arm64.go#L136-L172","documentation":"For networks configured with mode `shared` or `bridged`, krunkit routes traffic through socket_vmnet (like qemu's socket_vmnet backend). buildNetworkArgs checks networks.yaml/IsDaemonInstalled for the socket_vmnet daemon and returns `socket_vmnet is not installed` when it is absent, because shared/bridged networking cannot work without it.","triggerScenarios":"Starting a krunkit instance whose lima.yaml has `networks: [{lima: shared}]` or `{lima: bridged}` on a macOS host where socket_vmnet is not installed (or not registered in ~/.lima/_config/networks.yaml as installed).","commonSituations":"Fresh macOS setup where the user copied an example config using shared networking; after a Homebrew upgrade that removed socket_vmnet; missing the `limactl sudoers` / launchd daemon installation step.","solutions":["Install socket_vmnet: `brew install socket_vmnet`.","Set up the privileged daemon per Lima docs: `limactl sudoers --check`/`limactl sudoers` and follow the printed instructions, or the socket_vmnet launchd setup in the docs.","Switch the instance to user-mode networking: change the network entry to `lima: user-v2` (no daemon needed).","Verify ~/.lima/_config/networks.yaml marks socketVMNet as installed with correct socketVMNet paths/binary."],"exampleFix":"# before (lima.yaml)\nnetworks:\n  - lima: bridged\n# after (option A)\nnetworks:\n  - lima: user-v2\n# option B: brew install socket_vmnet && limactl sudoers (then keep bridged)","handlingStrategy":"validation","validationCode":"# Shell: verify socket_vmnet presence before using shared/bridged\ncommand -v socket_vmnet >/dev/null 2>&1 || { echo \"socket_vmnet not installed: brew install socket_vmnet\"; exit 1; }","typeGuard":"func requiresSocketVMNet(limaMode string) bool {\n    return limaMode == \"shared\" || limaMode == \"bridged\"\n}","tryCatchPattern":"if err := inst.Start(ctx); err != nil {\n    if strings.Contains(err.Error(), \"socket_vmnet is not installed\") {\n        // fall back to user-v2 networking or install socket_vmnet\n        return switchToUserV2AndStart(ctx, inst)\n    }\n    return err\n}","preventionTips":["Install socket_vmnet (brew install socket_vmnet) and run limactl sudoers setup on every macOS dev machine","Prefer user-v2 networking unless bridged/shared is truly needed","Re-check after Homebrew upgrades that socket_vmnet remains installed","Keep ~/.lima/_config/networks.yaml paths in sync with the installed binary"],"tags":["krunkit","network","socket-vmnet","macos","bridged"],"backgroundTag":"socket-vmnet-not-installed","analyzedSha":"dd909d0973cd84fa35f9e1693181b4585ea616c1","analyzedAt":"2026-09-01T14:24:59.842Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}