{"record":{"id":"883eb18964e8b9d9","repo":"abiosoft/colima","slug":"s-is-not-running","errorCode":null,"errorMessage":"%s is not running","messagePattern":"(.+?) is not running","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"info","filePath":"app/app.go","lineNumber":372,"sourceCode":"\tDriver           string `json:\"driver\"`\n\tArch             string `json:\"arch\"`\n\tRuntime          string `json:\"runtime\"`\n\tMountType        string `json:\"mount_type\"`\n\tIPAddress        string `json:\"ip_address,omitempty\"`\n\tDockerSocket     string `json:\"docker_socket,omitempty\"`\n\tContainerdSocket string `json:\"containerd_socket,omitempty\"`\n\tBuildkitdSocket  string `json:\"buildkitd_socket,omitempty\"`\n\tIncusSocket      string `json:\"incus_socket,omitempty\"`\n\tKubernetes       bool   `json:\"kubernetes\"`\n\tCPU              int    `json:\"cpu\"`\n\tMemory           int64  `json:\"memory\"`\n\tDisk             int64  `json:\"disk\"`\n}\n\nfunc (c colimaApp) getStatus() (status statusInfo, err error) {\n\tctx := context.Background()\n\tif !c.guest.Running(ctx) {\n\t\treturn status, fmt.Errorf(\"%s is not running\", config.CurrentProfile().DisplayName)\n\t}\n\n\tcurrentRuntime, err := c.currentRuntime(ctx)\n\tif err != nil {\n\t\treturn status, err\n\t}\n\n\tstatus.DisplayName = config.CurrentProfile().DisplayName\n\tstatus.Driver = \"QEMU\"\n\tconf, _ := configmanager.LoadInstance()\n\tif !conf.Empty() {\n\t\tstatus.Driver = conf.DriverLabel()\n\t}\n\tstatus.Arch = string(c.guest.Arch())\n\tstatus.Runtime = currentRuntime\n\tstatus.MountType = conf.MountType\n\tipAddress := limautil.IPAddress(config.CurrentProfile().ID)\n\tif ipAddress != \"127.0.0.1\" {","sourceCodeStart":354,"sourceCodeEnd":390,"githubUrl":"https://github.com/abiosoft/colima/blob/c3a5f9184d83a197184f897a9f07eb3c01b3bc88/app/app.go#L354-L390","documentation":"colima's status pipeline (getStatus) returns this when the guest VM is not running; the profile display name is included. It represents a normal steady-state answer (VM down), phrased as an error because Status() propagates it to the caller/CLI.","triggerScenarios":"`colima status` (plain or --json) while the VM is stopped, or any caller invoking App.Status/getStatus before `colima start`.","commonSituations":"Status checks right after boot/login before starting colima; CI probes using colima status as a readiness gate; checks after a host reboot.","solutions":["Start the VM if it should be up: `colima start`","Treat this exact message as the 'stopped' answer in monitoring rather than a failure","Use `colima list` to see all profiles' states at once","Automate startup at login (brew services, launchd, or a shell hook)"],"exampleFix":"# monitoring treats stopped as a state, not an alert\ncolima status 2>&1 | grep -q 'is not running' && echo 'stopped' || echo 'running'","handlingStrategy":"validation","validationCode":"// readiness probe that treats 'not running' as a state, not a failure\nout, err := exec.Command(\"colima\", \"status\").CombinedOutput()\nstopped := err != nil && strings.Contains(string(out), \"not running\")\nif stopped {\n    // start it, or report 'stopped' and exit cleanly\n}","typeGuard":"func isVMNotRunning(err error) bool {\n    return err != nil && strings.Contains(err.Error(), \"is not running\")\n}","tryCatchPattern":"if err := a.Status(false, true); err != nil {\n    if isVMNotRunning(err) {\n        // normal state: VM down -> start it or report 'stopped' without failing the pipeline\n    }\n    return err\n}","preventionTips":["Autostart colima after reboot if scripts depend on it","Model 'stopped' explicitly in monitoring instead of treating non-zero exit as an alert","Use `colima list` for multi-profile state checks"],"tags":["status","vm","precondition"],"backgroundTag":null,"analyzedSha":"c3a5f9184d83a197184f897a9f07eb3c01b3bc88","analyzedAt":"2026-08-15T18:58:08.334Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}