openai/codex · error · anyhow::Error

MCP event request _meta must be a JSON object, got {other}

Error message

MCP event request _meta must be a JSON object, got {other}

What it means

Error "MCP event request _meta must be a JSON object, got {other}" thrown in openai/codex.

Source

Thrown at codex-rs/core/src/codex_thread.rs:895

            .session
            .services
            .mcp_runtime
            .read_resource_for_call(self.session.thread_id, call_id, uri)
            .await?;

        Ok(serde_json::to_value(result)?)
    }

    pub async fn start_mcp_event_stream(
        &self,
        name: &str,
        arguments: serde_json::Value,
        meta: Option<serde_json::Value>,
    ) -> anyhow::Result<codex_mcp::McpEventStream> {
        let meta = match meta.as_ref() {
            Some(serde_json::Value::Object(meta)) => Some(meta),
            Some(other) => {
                anyhow::bail!("MCP event request _meta must be a JSON object, got {other}")
            }
            None => None,
        };
        let _ = self.session.services.auth_manager.auth().await;
        self.session.refresh_mcp_if_dirty().await;
        codex_mcp::McpResourceClient::new(Arc::clone(&self.session.services.mcp_runtime))
            .open_event_stream(name, &arguments, meta)
            .await
    }

    pub async fn call_mcp_tool(
        &self,
        server: &str,
        tool: &str,
        arguments: Option<serde_json::Value>,
        meta: Option<serde_json::Value>,
    ) -> anyhow::Result<CallToolResult> {
        self.session.refresh_mcp_if_dirty().await;

View on GitHub (pinned to 339751715c)

Solutions

  1. Send the MCP event request `_meta` as a JSON object.

When it happens

Trigger: Thrown at codex-rs/core/src/codex_thread.rs:895 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/6091a859fc90eca7. Report an issue: GitHub.