abiosoft/colima · error
error retrieving embedded vmnet file: %w
Error message
error retrieving embedded vmnet file: %w
What it means
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).
Source
Thrown at daemon/process/vmnet/deps.go:55
return false
}
}
return true
}
func (v vmnetFile) bins() []string {
return []string{BinaryPath, ClientBinaryPath}
}
func (v vmnetFile) Install(host environment.HostActions) error {
arch := "x86_64"
if runtime.GOARCH != "amd64" {
arch = "arm64"
}
// read the embedded file
gz, err := embedded.Read("network/vmnet_" + arch + ".tar.gz")
if err != nil {
return fmt.Errorf("error retrieving embedded vmnet file: %w", err)
}
// write tar to tmp directory
f, err := os.CreateTemp("", "vmnet.tar.gz")
if err != nil {
return fmt.Errorf("error creating temp file: %w", err)
}
if _, err := f.Write(gz); err != nil {
return fmt.Errorf("error writing temp file: %w", err)
}
_ = f.Close() // not a fatal error
defer func() {
_ = os.Remove(f.Name())
}()
// extract tar to desired location
dir := optDirView on GitHub (pinned to c3a5f9184d)
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
Example fix
// before: pruned tree $ rm embedded/network/vmnet_arm64.tar.gz && go build ./cmd/colima // build succeeds $ ./colima start --network-address error occurred installing dependencies for 'vmnet': error retrieving embedded vmnet file: open network/vmnet_arm64.tar.gz: file does not exist // after $ git checkout -- embedded/network // restore assets, rebuild
Defensive patterns
Strategy: validation
Validate before calling
// build-time smoke test in your packaging pipeline
func TestEmbeddedVmnetPresent(t *testing.T) {
for _, f := range []string{"network/vmnet_x86_64.tar.gz", "network/vmnet_arm64.tar.gz"} {
if _, err := embedded.Read(f); err != nil {
t.Fatalf("embedded asset missing: %v", err)
}
}
} Try / catch
if _, err := embedded.Read("network/vmnet_" + arch + ".tar.gz"); err != nil {
// binary built from incomplete tree — do not retry; rebuild from full checkout
return fmt.Errorf("error retrieving embedded vmnet file: %w", err)
} Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- error reading embedded flannel config: %w
- error reading config file: %w
- unable to read embedded file: %w
- error reading embedded file: %w
- error reading template file: %w
AI-assisted analysis of abiosoft/colima@c3a5f9184d (2026-08-15).
Data as JSON: /api/errors/9fc695d5eee46590.
Report an issue: GitHub.