{"record":{"id":"4e89c30e6b8238ac","repo":"openai/codex","slug":"managed-mitm-ca-cert-path-is-missing-a-parent","errorCode":null,"errorMessage":"managed MITM CA cert path is missing a parent","messagePattern":"managed MITM CA cert path is missing a parent","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/network-proxy/src/certs.rs","lineNumber":471,"sourceCode":"    };\n    format!(\"{:x}\", Sha256::digest(trust_bundle)) == expected_hash\n}\n\n/// Returns whether `path` points at a current Codex-generated MITM CA bundle.\npub fn is_managed_mitm_ca_trust_bundle_path(path: &str) -> bool {\n    let Ok(proxy_dir) = managed_ca_dir() else {\n        return false;\n    };\n    is_generated_trust_bundle_path(Path::new(path), &proxy_dir)\n}\n\nfn persist_managed_ca_trust_bundle(\n    managed_ca_cert_path: &Path,\n    trust_bundle: &str,\n) -> Result<PathBuf> {\n    let proxy_dir = managed_ca_cert_path\n        .parent()\n        .ok_or_else(|| anyhow!(\"managed MITM CA cert path is missing a parent\"))?;\n    fs::create_dir_all(proxy_dir)\n        .with_context(|| format!(\"failed to create {}\", proxy_dir.display()))?;\n    let hash = Sha256::digest(trust_bundle.as_bytes());\n    let trust_bundle_path = proxy_dir.join(format!(\n        \"{MANAGED_MITM_CA_TRUST_BUNDLE_PREFIX}-{hash:x}.pem\"\n    ));\n    write_atomic_create_new_or_reuse(\n        &trust_bundle_path,\n        trust_bundle.as_bytes(),\n        /*mode*/ 0o644,\n    )\n    .with_context(|| {\n        format!(\n            \"failed to persist managed MITM CA trust bundle {}\",\n            trust_bundle_path.display()\n        )\n    })?;\n    Ok(trust_bundle_path)","sourceCodeStart":453,"sourceCodeEnd":489,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/network-proxy/src/certs.rs#L453-L489","documentation":"Error \"managed MITM CA cert path is missing a parent\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/network-proxy/src/certs.rs:471 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"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"}