{"record":{"id":"013e720309683453","repo":"lima-vm/lima","slug":"unknown-daemon-type-q","errorCode":null,"errorMessage":"unknown daemon type %#q","messagePattern":"unknown daemon type %#q","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/networks/commands.go","lineNumber":45,"sourceCode":"\t}\n\treturn fmt.Errorf(\"network %#q is not defined\", name)\n}\n\n// Usernet returns true if the mode of given network is ModeUserV2.\nfunc (c *Config) Usernet(name string) (bool, error) {\n\tif nw, ok := c.Networks[name]; ok {\n\t\treturn nw.Mode == ModeUserV2, nil\n\t}\n\treturn false, fmt.Errorf(\"network %#q is not defined\", name)\n}\n\n// DaemonPath returns the daemon path.\nfunc (c *Config) DaemonPath(daemon string) (string, error) {\n\tswitch daemon {\n\tcase SocketVMNet:\n\t\treturn c.Paths.SocketVMNet, nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unknown daemon type %#q\", daemon)\n\t}\n}\n\n// IsDaemonInstalled checks whether the daemon is installed.\nfunc (c *Config) IsDaemonInstalled(daemon string) (bool, error) {\n\tp, err := c.DaemonPath(daemon)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tif p == \"\" {\n\t\treturn false, nil\n\t}\n\tif _, err := exec.LookPath(p); err != nil {\n\t\tif errors.Is(err, fs.ErrNotExist) {\n\t\t\treturn false, nil\n\t\t}\n\t\treturn false, err\n\t}","sourceCodeStart":27,"sourceCodeEnd":63,"githubUrl":"https://github.com/lima-vm/lima/blob/dd909d0973cd84fa35f9e1693181b4585ea616c1/pkg/networks/commands.go#L27-L63","documentation":"Config.DaemonPath returns the executable path configured for a network daemon (currently only socket_vmnet). Any daemon name other than the known SocketVMNet constant falls into the default case and yields 'unknown daemon type %#q'. It is a lookup guard for the supported daemon set.","triggerScenarios":"Calling DaemonPath (directly or via IsDaemonInstalled/User) with a string other than networks.SocketVMNet, e.g. \"vde_vmnet\" (legacy) or a typo like \"socketvmnet\".","commonSituations":"Code copied from older Lima versions that supported vde_vmnet; hand-written integration scripts passing a display name instead of the constant; plugins extending daemon support incorrectly.","solutions":["Pass the networks.SocketVMNet constant as the daemon argument","Remove/replace legacy daemon references (vde_vmnet is no longer supported)","Extend the switch in DaemonPath if you genuinely maintain a fork adding new daemons"],"exampleFix":"// before\npath, err := cfg.DaemonPath(\"vde_vmnet\")\n// after\npath, err := cfg.DaemonPath(networks.SocketVMNet)","handlingStrategy":"type-guard","validationCode":"if daemon != networks.SocketVMNet {\n    return fmt.Errorf(\"unsupported daemon %q; only socket_vmnet is supported\", daemon)\n}","typeGuard":"func isSupportedDaemon(d string) bool { return d == networks.SocketVMNet }","tryCatchPattern":"p, err := cfg.DaemonPath(daemon)\nif err != nil {\n    return fmt.Errorf(\"daemon lookup failed: %w\", err)\n}","preventionTips":["Always use the exported networks.SocketVMNet constant, never raw strings","Remember vde_vmnet is not supported by this Lima version","Only daemon argument accepted by the API is \"socket_vmnet\""],"tags":["network","daemon","socket-vmnet","go"],"backgroundTag":"unknown-daemon-type","analyzedSha":"dd909d0973cd84fa35f9e1693181b4585ea616c1","analyzedAt":"2026-09-01T14:24:59.842Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}