{"record":{"id":"2ca70aba50351c5c","repo":"abiosoft/colima","slug":"error-provisioning-s-w","errorCode":null,"errorMessage":"error provisioning %s: %w","messagePattern":"error provisioning (.+?): %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/app.go","lineNumber":135,"sourceCode":"\t}\n\n\t// the order for start is:\n\t//   vm start -> container runtime provision -> container runtime start\n\n\t// start vm\n\tif err := c.guest.Start(ctx, conf); err != nil {\n\t\treturn fmt.Errorf(\"error starting vm: %w\", err)\n\t}\n\n\t// run after-boot provision scripts\n\tc.runProvisionScripts(conf, config.ProvisionModeAfterBoot)\n\n\t// provision and start container runtimes\n\tfor _, cont := range containers {\n\t\tlog := log.WithField(\"context\", cont.Name())\n\t\tlog.Println(\"provisioning ...\")\n\t\tif err := cont.Provision(ctx); err != nil {\n\t\t\treturn fmt.Errorf(\"error provisioning %s: %w\", cont.Name(), err)\n\t\t}\n\t\tlog.Println(\"starting ...\")\n\t\tif err := cont.Start(ctx); err != nil {\n\t\t\treturn fmt.Errorf(\"error starting %s: %w\", cont.Name(), err)\n\t\t}\n\t}\n\n\t// run ready provision scripts\n\tc.runProvisionScripts(conf, config.ProvisionModeReady)\n\n\t// persist the current runtime\n\tif err := c.setRuntime(conf.Runtime); err != nil {\n\t\tlog.Error(fmt.Errorf(\"error persisting runtime settings: %w\", err))\n\t}\n\n\t// persist the kubernetes config\n\tif err := c.setKubernetes(conf.Kubernetes); err != nil {\n\t\tlog.Error(fmt.Errorf(\"error persisting kubernetes settings: %w\", err))","sourceCodeStart":117,"sourceCodeEnd":153,"githubUrl":"https://github.com/abiosoft/colima/blob/c3a5f9184d83a197184f897a9f07eb3c01b3bc88/app/app.go#L117-L153","documentation":"After the VM boots, Start iterates the selected container runtimes and calls cont.Provision; this error wraps a provisioning failure of the named runtime (docker, containerd, incus). Provisioning copies binaries and configuration into the guest, so failures are almost always guest-side: download, DNS, or disk problems inside the VM.","triggerScenarios":"colima start when the guest cannot reach the internet to fetch runtime assets (broken DNS in the VM, a corporate proxy not passed via --env HTTP_PROXY/HTTPS_PROXY); guest disk full; runtime packages unavailable for the guest architecture.","commonSituations":"Corporate network with TLS-intercepting proxy the VM was never told about; VM created before a network change so /etc/resolv.conf points at a dead resolver; default disk size exhausted by images; VPN routes not reaching the VM.","solutions":["Retry `colima start --verbose` and read the wrapped provisioning error for the named runtime","Check guest networking: `colima ssh -- curl -sI https://github.com` and inspect /etc/resolv.conf; fix with `colima stop && colima start --dns 1.1.1.1` or proxy env vars","Free guest disk or recreate with more: `colima delete && colima start --disk 100`","Recreate the VM if the guest state is corrupted: `colima delete && colima start`"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// probe guest networking before relying on provisioning\nif err := a.SSH(\"curl\", \"-fsI\", \"--max-time\", \"5\", \"https://github.com\"); err != nil {\n    // fix DNS/proxy first: colima stop && colima start --dns 1.1.1.1 (or proxy env)\n    return fmt.Errorf(\"guest has no egress; provisioning will fail: %w\", err)\n}","typeGuard":null,"tryCatchPattern":"if err := a.Start(ctx, conf); err != nil && strings.Contains(err.Error(), \"error provisioning\") {\n    // guest-side download failure is often transient: stop, verify network, start again\n    _ = a.Stop(false)\n    err = a.Start(ctx, conf)\n}","preventionTips":["Pass proxy settings on start: `colima start --env HTTP_PROXY=... --env HTTPS_PROXY=...`","Pin a working DNS with `--dns` on corporate networks","Size `--disk` for the runtimes and images you use"],"tags":["runtime","provisioning","network","dns","proxy"],"backgroundTag":null,"analyzedSha":"c3a5f9184d83a197184f897a9f07eb3c01b3bc88","analyzedAt":"2026-08-15T18:58:08.334Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}