{"record":{"id":"fa56dd34c8793bc0","repo":"multica-ai/multica","slug":"read-s-w","errorCode":null,"errorMessage":"read %s: %w","messagePattern":"read (.+?): %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/internal/daemon/execenv/codex_home.go","lineNumber":855,"sourceCode":"// config.toml is copied verbatim, so its path-valued keys survive the move to\n// the task home while the files they name do not. Codex resolves a relative\n// value against CODEX_HOME, which is now the task home, so an unmaterialised\n// reference makes Codex fail while loading its configuration — before the task\n// prompt is ever delivered (MUL-5623 / #6271: `failed to read model\n// instructions file <task-home>/gpt-unrestricted.md`).\n//\n// Only the keys listed below are followed. Copying every path a config could\n// mention would turn any user config into a channel for pulling arbitrary host\n// files into a task sandbox, and copying the whole shared home would drag\n// auth.json and the machine's session history along with it.\nfunc syncCodexReferencedFiles(codexHome, sharedHome string) error {\n\tconfigPath := filepath.Join(codexHome, \"config.toml\")\n\tdata, err := os.ReadFile(configPath)\n\tif os.IsNotExist(err) {\n\t\treturn nil\n\t}\n\tif err != nil {\n\t\treturn fmt.Errorf(\"read %s: %w\", configPath, err)\n\t}\n\n\tvar cfg struct {\n\t\tModelCatalogJSON string `toml:\"model_catalog_json\"`\n\t\t// Replacement for Codex's built-in instructions.\n\t\t// experimental_instructions_file is the deprecated alias Codex still\n\t\t// accepts, so configs written before the rename need it too.\n\t\tModelInstructionsFile        string `toml:\"model_instructions_file\"`\n\t\tExperimentalInstructionsFile string `toml:\"experimental_instructions_file\"`\n\t}\n\tif err := toml.Unmarshal(data, &cfg); err != nil {\n\t\treturn fmt.Errorf(\"parse %s: %w\", configPath, err)\n\t}\n\n\tfor _, ref := range []struct{ key, path string }{\n\t\t{\"model_catalog_json\", cfg.ModelCatalogJSON},\n\t\t{\"model_instructions_file\", cfg.ModelInstructionsFile},\n\t\t{\"experimental_instructions_file\", cfg.ExperimentalInstructionsFile},","sourceCodeStart":837,"sourceCodeEnd":873,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/internal/daemon/execenv/codex_home.go#L837-L873","documentation":"Error \"read %s: %w\" thrown in multica-ai/multica.","triggerScenarios":"Thrown at server/internal/daemon/execenv/codex_home.go:855 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check that the file exists and is readable."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}