{"record":{"id":"4370d4f87f891cbc","repo":"abiosoft/colima","slug":"error-setting-up-ai-model-runner-w","errorCode":null,"errorMessage":"error setting up AI model runner: %w","messagePattern":"error setting up AI model runner: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"model/ramalama.go","lineNumber":177,"sourceCode":"  pipx upgrade ramalama\nelse\n  pipx install ramalama\nfi\n\n# pull ramalama container images\ndocker pull quay.io/ramalama/ramalama\ndocker pull quay.io/ramalama/ramalama-rag\n\n# fix ownership of persistent data dir and symlink to expected location\nsudo chown -R $(id -u):$(id -g) /var/lib/ramalama\nmkdir -p \"$HOME/.local/share\"\nln -sfn /var/lib/ramalama \"$HOME/.local/share/ramalama\"\n`\n\n\tlog.Println(\"installing AI model runner...\")\n\n\tif err := guest.RunInteractive(\"sh\", \"-c\", script); err != nil {\n\t\treturn fmt.Errorf(\"error setting up AI model runner: %w\", err)\n\t}\n\n\tlog.Println(\"AI model runner installed\")\n\n\t// mark as provisioned\n\tif err := store.Set(func(s *store.Store) {\n\t\ts.RamalamaProvisioned = true\n\t}); err != nil {\n\t\treturn fmt.Errorf(\"error saving provisioning state: %w\", err)\n\t}\n\n\treturn nil\n}\n","sourceCodeStart":159,"sourceCodeEnd":191,"githubUrl":"https://github.com/abiosoft/colima/blob/c3a5f9184d83a197184f897a9f07eb3c01b3bc88/model/ramalama.go#L159-L191","documentation":"ProvisionRamalama streams a `set -e` install script into the VM (install ramalama, docker pull quay.io/ramalama/ramalama and ramalama-rag, chown /var/lib/ramalama, create the ~/.local/share/ramalama symlink) via guest.RunInteractive. Because of set -e, the first failing step aborts the script and surfaces here with the shell exit error wrapped in %w.","triggerScenarios":"VM offline so the install or docker pull steps fail; docker daemon unresponsive inside the VM; quay.io unreachable or rate-limiting; /var/lib/ramalama absent so the chown fails; VM disk too small for the two images.","commonSituations":"First-ever colima model run behind a corporate VPN/proxy that blocks quay.io or the ramalama install host; default VM disk too small for the AI images.","solutions":["Identify the failing line by running the same script steps manually via colima ssh and watching where it stops","Verify VM connectivity to the script's endpoints: colima ssh -- curl -I https://quay.io","Check docker inside the VM: colima ssh -- docker info; restart colima if the daemon is wedged","Free or grow VM disk (colima stop && colima start --disk) — the two images need several GB"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run first-time provisioning on a known-good network","Pre-pull quay.io/ramalama/ramalama images if egress to quay.io is flaky","Ensure VM disk headroom before provisioning the two AI images"],"tags":["provisioning","vm","docker","network","disk","go"],"backgroundTag":null,"analyzedSha":"c3a5f9184d83a197184f897a9f07eb3c01b3bc88","analyzedAt":"2026-08-15T18:58:08.334Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}