openai/codex · error · std::io::Error

unsupported CODEX_MCP_PROTOCOL_VERSION `{}` for stdio MCP se

Error message

unsupported CODEX_MCP_PROTOCOL_VERSION `{}` for stdio MCP server; expected `2026-07-28`

What it means

Error "unsupported CODEX_MCP_PROTOCOL_VERSION `{}` for stdio MCP server; expected `2026-07-28`" thrown in openai/codex.

Source

Thrown at codex-rs/rmcp-client/src/protocol_mode.rs:43

    pub(crate) fn client_lifecycle(self) -> ClientLifecycleMode {
        match self {
            Self::Legacy => ClientLifecycleMode::Initialize,
            Self::V20260728 => ClientLifecycleMode::Auto {
                preferred_versions: vec![ProtocolVersion::V_2026_07_28],
                legacy_version: Some(ProtocolVersion::V_2025_06_18),
            },
        }
    }

    pub(crate) fn stdio_mode(self, requested_version: Option<&OsStr>) -> io::Result<Self> {
        match (self, requested_version) {
            (Self::Legacy, _) => Ok(Self::Legacy),
            (_, None) => Ok(Self::Legacy),
            (Self::V20260728, Some(version)) if version == OsStr::new("2026-07-28") => {
                Ok(Self::V20260728)
            }
            (_, Some(version)) => Err(io::Error::new(
                io::ErrorKind::InvalidInput,
                format!(
                    "unsupported CODEX_MCP_PROTOCOL_VERSION `{}` for stdio MCP server; expected `2026-07-28`",
                    version.to_string_lossy()
                ),
            )),
        }
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn protocol_modes_select_compatible_sdk_lifecycles() {
        assert_eq!(
            McpProtocolMode::Legacy.preferred_protocol_version(),

View on GitHub (pinned to 339751715c)

When it happens

Trigger: Thrown at codex-rs/rmcp-client/src/protocol_mode.rs:43 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of openai/codex@339751715c (2026-08-25). Data as JSON: /api/errors/e2e85609e8eced12. Report an issue: GitHub.