{"record":{"id":"b861c4efc5c20044","repo":"openai/codex","slug":"env-vars-entry-uses-source-remote-which-re","errorCode":null,"errorMessage":"env_vars entry `{}` uses source `remote`, which requires remote MCP stdio","messagePattern":"env_vars entry `(.+?)` uses source `remote`, which requires remote MCP stdio","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/rmcp-client/src/utils.rs","lineNumber":92,"sourceCode":"    env.retain(|name, _| {\n        name.to_str()\n            .is_none_or(|name| !is_non_inheritable_env_var(name))\n    });\n    env\n}\n\npub(crate) fn remote_mcp_env_var_names(env_vars: &[McpServerEnvVar]) -> Vec<String> {\n    env_vars\n        .iter()\n        .filter(|var| var.is_remote_source())\n        .filter(|var| !is_non_inheritable_env_var(var.name()))\n        .map(|var| var.name().to_string())\n        .collect()\n}\n\nfn local_stdio_env_var_names(env_vars: &[McpServerEnvVar]) -> Result<impl Iterator<Item = &str>> {\n    if let Some(remote_var) = env_vars.iter().find(|var| var.is_remote_source()) {\n        return Err(anyhow!(\n            \"env_vars entry `{}` uses source `remote`, which requires remote MCP stdio\",\n            remote_var.name()\n        ));\n    }\n    Ok(env_vars\n        .iter()\n        .map(McpServerEnvVar::name)\n        .filter(|name| !is_non_inheritable_env_var(name)))\n}\n\npub(crate) fn build_default_headers(\n    http_headers: Option<HashMap<String, String>>,\n    env_http_headers: Option<HashMap<String, String>>,\n) -> Result<HeaderMap> {\n    let mut headers = HeaderMap::new();\n    headers.insert(USER_AGENT, HeaderValue::from_static(MCP_USER_AGENT));\n\n    if let Some(static_headers) = http_headers {","sourceCodeStart":74,"sourceCodeEnd":110,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/rmcp-client/src/utils.rs#L74-L110","documentation":"Error \"env_vars entry `{}` uses source `remote`, which requires remote MCP stdio\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/rmcp-client/src/utils.rs:92 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"}