{"record":{"id":"cd48112ccc77cd88","repo":"abiosoft/colima","slug":"error-starting-s-w","errorCode":null,"errorMessage":"error starting %s: %w","messagePattern":"error starting (.+?): %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/app.go","lineNumber":139,"sourceCode":"\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))\n\t}\n\n\tlog.Println(\"done\")\n","sourceCodeStart":121,"sourceCodeEnd":157,"githubUrl":"https://github.com/abiosoft/colima/blob/c3a5f9184d83a197184f897a9f07eb3c01b3bc88/app/app.go#L121-L157","documentation":"The container runtime was provisioned but failed to actually start inside the guest; cont.Start's error is wrapped with the runtime's name (docker/containerd/incus). The VM is up at this point, so the daemon itself refused to start: config errors, socket conflicts, or disk issues in the guest are typical.","triggerScenarios":"colima start when the docker/containerd daemon inside the VM fails: invalid daemon flags carried over in the instance config, leftover socket files from an unclean shutdown, guest disk full, or a runtime binary mismatched with the guest after an upgrade.","commonSituations":"Custom docker daemon settings incompatible with the upgraded docker version; upgrading colima over an old VM whose runtime state is stale; guest filesystem full from pulled images.","solutions":["Inspect the daemon inside the guest: `colima ssh`, then check the runtime's service log under /var/log or dockerd output","Restart cleanly: `colima stop && colima start --verbose`","Free guest disk space if the volume is full (`docker system prune` inside `colima ssh`)","Recreate the VM to clear stale runtime state: `colima delete && colima start`"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"if err := a.Start(ctx, conf); err != nil {\n    if strings.Contains(err.Error(), \"error starting docker\") || strings.Contains(err.Error(), \"error starting containerd\") {\n        // restart once via stop/start; recreate the instance if it persists\n        _ = a.Stop(false)\n        err = a.Start(ctx, conf)\n    }\n    if err != nil {\n        return err\n    }\n}\n// verify the daemon actually answers\nif err := a.SSH(\"docker\", \"version\", \"--format\", \"{{.Server.Version}}\"); err != nil {\n    return err\n}","preventionTips":["Recreate the VM after colima upgrades (`colima delete && colima start`)","Keep daemon customizations minimal and version-compatible","Prune images when the guest disk nears capacity"],"tags":["runtime","startup","docker","containerd","vm"],"backgroundTag":null,"analyzedSha":"c3a5f9184d83a197184f897a9f07eb3c01b3bc88","analyzedAt":"2026-08-15T18:58:08.334Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}