{"record":{"id":"8656595e905b2097","repo":"abiosoft/colima","slug":"error-retrieving-containerd-namespaces-w","errorCode":null,"errorMessage":"error retrieving containerd namespaces: %w","messagePattern":"error retrieving containerd namespaces: %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"daemon/process/inotify/volumes.go","lineNumber":39,"sourceCode":"\t}\n\n\tfetch := func() ([]string, error) {\n\t\tvar vols []string\n\n\t\tswitch f.runtime {\n\n\t\tcase docker.Name:\n\t\t\tvols, err := f.fetchVolumes(docker.Name)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"error fetching docker volumes: %w\", err)\n\t\t\t}\n\t\t\treturn vols, nil\n\n\t\tcase containerd.Name:\n\t\t\tvar namespaces []string\n\t\t\tout, err := f.guest.RunOutput(\"sudo\", \"nerdctl\", \"namespace\", \"list\", \"-q\")\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"error retrieving containerd namespaces: %w\", err)\n\t\t\t}\n\t\t\tif out != \"\" {\n\t\t\t\tnamespaces = strings.Fields(out)\n\t\t\t}\n\n\t\t\tfor _, ns := range namespaces {\n\t\t\t\tv, err := f.fetchVolumes(\"sudo\", \"nerdctl\", \"--namespace\", ns)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"error retrieving containerd volumes: %w\", err)\n\t\t\t\t}\n\t\t\t\tif len(v) > 0 {\n\t\t\t\t\tvols = append(vols, v...)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn vols, nil\n\t\t}\n","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/abiosoft/colima/blob/c3a5f9184d83a197184f897a9f07eb3c01b3bc88/daemon/process/inotify/volumes.go#L21-L57","documentation":"For runtime containerd, each volume poll begins by listing namespaces in the guest via `sudo nerdctl namespace list -q`. Failure is wrapped as 'error retrieving containerd namespaces' and logged by the poll goroutine, retried every 5 seconds. It is the containerd-runtime analogue of the docker fetch failure and is non-fatal.","triggerScenarios":"nerdctl missing or broken in the guest image; containerd not yet started during VM boot; guest unreachable when the poll fires.","commonSituations":"VM boot window with --mount-inotify and runtime containerd; a partially provisioned VM after a failed start; containerd stopped inside the VM.","solutions":["wait out the boot window — the poll self-heals every 5s","run it by hand to see the guest-side error: `colima ssh -- sudo nerdctl namespace list -q`","restart colima if nerdctl/containerd in the guest is genuinely wedged"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"if _, err := guest.RunOutput(\"sudo\", \"nerdctl\", \"namespace\", \"list\", \"-q\"); err != nil {\n    return fmt.Errorf(\"containerd/nerdctl not ready in guest: %w\", err)\n}","typeGuard":null,"tryCatchPattern":"if vols, err := fetch(); err != nil {\n    if strings.Contains(err.Error(), \"error retrieving containerd namespaces\") {\n        // nerdctl/containerd in guest not up — retry next 5s tick, no action\n    }\n}","preventionTips":["with runtime containerd, allow a longer boot grace period before treating log noise as failure","health-check the guest with `colima ssh -- sudo nerdctl namespace list -q`","avoid stopping containerd inside the guest while inotify watching is enabled"],"tags":["containerd","nerdctl","volumes","transient"],"backgroundTag":null,"analyzedSha":"c3a5f9184d83a197184f897a9f07eb3c01b3bc88","analyzedAt":"2026-08-15T18:58:08.334Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}