{"record":{"id":"ccf540966e69655e","repo":"openai/codex","slug":"requirements-layer-source-has-no-base-directory","errorCode":null,"errorMessage":"requirements layer {source} has no base directory","messagePattern":"requirements layer (.+?) has no base directory","errorType":"exception","errorClass":"io::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/config/src/loader/local.rs","lineNumber":307,"sourceCode":"        );\n    }\n\n    let mut layers = Vec::with_capacity(entries.len());\n    for entry in entries {\n        layers.push(local_requirements_layer(entry)?);\n    }\n    Ok(LocalTomlLayerStack {\n        layers,\n        cloud_insertion_index,\n    })\n}\n\nfn local_requirements_layer(\n    entry: RequirementsLayerEntry,\n) -> io::Result<LocalTomlLayer<RequirementSource>> {\n    let (source, toml, base_dir) = entry.into_raw_parts()?;\n    let base_dir = base_dir.ok_or_else(|| {\n        io::Error::new(\n            io::ErrorKind::InvalidData,\n            format!(\"requirements layer {source} has no base directory\"),\n        )\n    })?;\n    Ok(LocalTomlLayer {\n        source,\n        base_dir,\n        toml,\n    })\n}\n\n#[derive(Default)]\nstruct SelectorNode {\n    terminal: bool,\n    children: BTreeMap<String, SelectorNode>,\n}\n\nimpl SelectorNode {","sourceCodeStart":289,"sourceCodeEnd":325,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/config/src/loader/local.rs#L289-L325","documentation":"Error \"requirements layer {source} has no base directory\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/config/src/loader/local.rs:307 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure requirements layer {source} is backed by a file with a valid parent directory."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}