{"record":{"id":"9fc695d5eee46590","repo":"abiosoft/colima","slug":"error-retrieving-embedded-vmnet-file-w","errorCode":null,"errorMessage":"error retrieving embedded vmnet file: %w","messagePattern":"error retrieving embedded vmnet file: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"daemon/process/vmnet/deps.go","lineNumber":55,"sourceCode":"\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (v vmnetFile) bins() []string {\n\treturn []string{BinaryPath, ClientBinaryPath}\n}\nfunc (v vmnetFile) Install(host environment.HostActions) error {\n\tarch := \"x86_64\"\n\tif runtime.GOARCH != \"amd64\" {\n\t\tarch = \"arm64\"\n\t}\n\n\t// read the embedded file\n\tgz, err := embedded.Read(\"network/vmnet_\" + arch + \".tar.gz\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error retrieving embedded vmnet file: %w\", err)\n\t}\n\n\t// write tar to tmp directory\n\tf, err := os.CreateTemp(\"\", \"vmnet.tar.gz\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error creating temp file: %w\", err)\n\t}\n\tif _, err := f.Write(gz); err != nil {\n\t\treturn fmt.Errorf(\"error writing temp file: %w\", err)\n\t}\n\t_ = f.Close() // not a fatal error\n\n\tdefer func() {\n\t\t_ = os.Remove(f.Name())\n\t}()\n\n\t// extract tar to desired location\n\tdir := optDir","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/abiosoft/colima/blob/c3a5f9184d83a197184f897a9f07eb3c01b3bc88/daemon/process/vmnet/deps.go#L37-L73","documentation":"vmnetFile.Install reads the architecture-specific tarball baked in at compile time via go:embed: embedded/network/vmnet_x86_64.tar.gz on amd64, vmnet_arm64.tar.gz otherwise. embedded.Read is a plain fs.ReadFile, so this fails when that specific file is absent from the embedded FS — i.e. the binary was built from a source tree where embedded/network/vmnet_*.tar.gz was missing (go:embed only errors at compile time if the whole `network` pattern matched nothing, so an individually deleted tarball slips through to runtime).","triggerScenarios":"custom `go build` from a pruned/partial checkout missing embedded/network/vmnet_*.tar.gz; packaging pipelines (docker/nix archives without git LFS-style assets) that strip the embedded directory; cross-compiled binaries where the other arch's tarball was removed.","commonSituations":"building colima from a source tarball that excluded binaries; distro packaging that prunes .tar.gz files; unusual GOARCH values resolving to an arm64 asset that was deleted.","solutions":["use an official release or brew install colima instead of a custom build","rebuild from a complete checkout: `git status embedded/` must show network/vmnet_arm64.tar.gz and network/vmnet_x86_64.tar.gz present","if packaging, ensure both arch tarballs ship into the build context before go build"],"exampleFix":"// before: pruned tree\n$ rm embedded/network/vmnet_arm64.tar.gz && go build ./cmd/colima   // build succeeds\n$ ./colima start --network-address\nerror occurred installing dependencies for 'vmnet': error retrieving embedded vmnet file: open network/vmnet_arm64.tar.gz: file does not exist\n\n// after\n$ git checkout -- embedded/network   // restore assets, rebuild","handlingStrategy":"validation","validationCode":"// build-time smoke test in your packaging pipeline\nfunc TestEmbeddedVmnetPresent(t *testing.T) {\n    for _, f := range []string{\"network/vmnet_x86_64.tar.gz\", \"network/vmnet_arm64.tar.gz\"} {\n        if _, err := embedded.Read(f); err != nil {\n            t.Fatalf(\"embedded asset missing: %v\", err)\n        }\n    }\n}","typeGuard":null,"tryCatchPattern":"if _, err := embedded.Read(\"network/vmnet_\" + arch + \".tar.gz\"); err != nil {\n    // binary built from incomplete tree — do not retry; rebuild from full checkout\n    return fmt.Errorf(\"error retrieving embedded vmnet file: %w\", err)\n}","preventionTips":["build only from complete checkouts; `git status embedded/network` must be clean","packaging pipelines must not prune embedded/network/*.tar.gz from build context","run an embedded-asset smoke test in CI for every published binary"],"tags":["vmnet","embedded","build","packaging"],"backgroundTag":null,"analyzedSha":"c3a5f9184d83a197184f897a9f07eb3c01b3bc88","analyzedAt":"2026-08-15T18:58:08.334Z","schemaVersion":2},"datasetVersion":"2026-08-16T03:17:38.424Z"}