{"record":{"id":"e0b1fd503326a786","repo":"abiosoft/colima","slug":"unable-to-read-embedded-file-w","errorCode":null,"errorMessage":"unable to read embedded file: %w","messagePattern":"unable to read embedded file: %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"cmd/start.go","lineNumber":677,"sourceCode":"\t}\n\n\tsetFixedConfigs(&startCmdArgs.Config)\n}\n\n// editConfigFile launches an editor to edit the config file.\nfunc editConfigFile() (config.Config, error) {\n\tvar c config.Config\n\n\t// preserve the current file in case the user terminates\n\tcurrentFile, err := os.ReadFile(config.CurrentProfile().File())\n\tif err != nil {\n\t\treturn c, fmt.Errorf(\"error reading config file: %w\", err)\n\t}\n\n\t// prepend the config file with termination instruction\n\tabort, err := embedded.ReadString(\"defaults/abort.yaml\")\n\tif err != nil {\n\t\tlog.Warnln(fmt.Errorf(\"unable to read embedded file: %w\", err))\n\t}\n\n\ttmpFile, err := waitForUserEdit(startCmdArgs.Flags.Editor, []byte(abort+\"\\n\"+string(currentFile)))\n\tif err != nil {\n\t\treturn c, fmt.Errorf(\"error editing config file: %w\", err)\n\t}\n\n\t// if file is empty, abort\n\tif tmpFile == \"\" {\n\t\treturn c, fmt.Errorf(\"empty file, startup aborted\")\n\t}\n\n\tdefer func() {\n\t\t_ = os.Remove(tmpFile)\n\t}()\n\tif startCmdArgs.Flags.SaveConfig {\n\t\tif err := configmanager.SaveFromFile(tmpFile); err != nil {\n\t\t\treturn c, err","sourceCodeStart":659,"sourceCodeEnd":695,"githubUrl":"https://github.com/abiosoft/colima/blob/c3a5f9184d83a197184f897a9f07eb3c01b3bc88/cmd/start.go#L659-L695","documentation":"A warning inside editConfigFile when embedded.ReadString('defaults/abort.yaml') fails to read the abort-instruction header from the go:embed filesystem compiled into the colima binary. Because the assets are embedded at build time, a failure nearly always means a broken custom build (asset removed from the tree before compiling, embed pattern mismatch), not a runtime environment issue. The flow continues with an empty header.","triggerScenarios":"Running a colima binary built from a source tree where embedded/defaults/abort.yaml was deleted or renamed without updating the //go:embed directive; corrupted binary. Not triggerable by normal user configuration.","commonSituations":"Contributors building colima locally after moving embedded assets; patched/repacked binaries distributed outside brew/Nix; effectively never seen in official releases.","solutions":["If using an official binary, this is not your config — reinstall colima to rule out corruption","If building from source, restore embedded/defaults/abort.yaml (or fix the //go:embed pattern in embedded/embed.go) and rebuild","Ignore safely: the edit flow proceeds, only the instructional comment atop the temp file is missing"],"exampleFix":"// before: asset missing from the embed tree\n// (build warning at compile time, runtime warn on `colima start --edit`)\n\n// after: ensure the file exists relative to the embed directive\n// embedded/embed.go: //go:embed network k3s defaults images\n// embedded/defaults/abort.yaml must exist; then rebuild:\n// go build ./cmd/colima","handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use official colima distributions (brew/Nix/releases) so embedded assets are intact","When building from source, build from a clean checkout after touching embedded/"],"tags":["embedded-assets","build","editor"],"backgroundTag":null,"analyzedSha":"c3a5f9184d83a197184f897a9f07eb3c01b3bc88","analyzedAt":"2026-08-15T18:58:08.334Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}