tinyhumansai/openhuman · error

Missing 'action_name' (or 'tool_slug') for execute

Error message

Missing 'action_name' (or 'tool_slug') for execute

What it means

Execute-path guard: neither tool_slug nor action_name was supplied (or they were not strings), so there is no Composio action to execute. The security gate for composio.execute has already passed at this point.

Source

Thrown at src/openhuman/integrations/composio/tools/direct.rs:849

                    }
                    Err(e) => Ok(ToolResult::error(format!("Failed to list actions: {e}"))),
                }
            }

            "execute" => {
                if let Err(error) = self
                    .security
                    .enforce_tool_operation(ToolOperation::Act, "composio.execute")
                {
                    return Ok(ToolResult::error(error));
                }

                let action_name = args
                    .get("tool_slug")
                    .or_else(|| args.get("action_name"))
                    .and_then(|v| v.as_str())
                    .ok_or_else(|| {
                        anyhow::anyhow!("Missing 'action_name' (or 'tool_slug') for execute")
                    })?;

                let params = args.get("params").cloned().unwrap_or(json!({}));
                let acct_ref = args.get("connected_account_id").and_then(|v| v.as_str());

                match self
                    .execute_action(action_name, params, Some(entity_id), acct_ref)
                    .await
                {
                    Ok(result) => {
                        let output = serde_json::to_string_pretty(&result)
                            .unwrap_or_else(|_| format!("{result:?}"));
                        Ok(ToolResult::success(output))
                    }
                    Err(e) => Ok(ToolResult::error(format!("Action execution failed: {e}"))),
                }
            }

View on GitHub (pinned to 7491200858)

Solutions

  1. Supply tool_slug (preferred) or action_name naming the Composio action to run
  2. List available actions with action="list" to find the correct slug
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/integrations/composio/tools/direct.rs:849 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/2d614566d9a83a14. Report an issue: GitHub.