tinyhumansai/openhuman · error

Missing 'flavour' parameter

Error message

Missing 'flavour' parameter

What it means

Required-parameter guard in a memory flavour-listing tool's execute: the `flavour` argument selecting which flavour to query is absent or not a string. The tool is read-only (PermissionLevel::ReadOnly, explicitly pinned) so this fires before any guard/driver access and nothing is written.

Source

Thrown at src/openhuman/memory/tools/flavour.rs:242

    }

    fn permission_level(&self) -> PermissionLevel {
        // Genuinely read-only: this tool never ingests, seals, or writes
        // memory content. Overridden explicitly (not relying on the trait
        // default) so a future default change can't silently loosen this.
        PermissionLevel::ReadOnly
    }

    fn permission_level_with_args(&self, _args: &serde_json::Value) -> PermissionLevel {
        // No arg combination for this tool escalates past ReadOnly.
        PermissionLevel::ReadOnly
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        let flavour_raw = args
            .get("flavour")
            .and_then(|v| v.as_str())
            .ok_or_else(|| anyhow::anyhow!("Missing 'flavour' parameter"))?;

        match lookup_flavour(&self.config, flavour_raw) {
            Err(hard) => Err(anyhow::anyhow!(hard)),
            Ok(FlavourLookup::Profile(body)) => Ok(ToolResult::success(body)),
            Ok(FlavourLookup::NotBuilt(msg)) => Ok(ToolResult::success(msg)),
            Ok(FlavourLookup::Failed(msg)) => Ok(ToolResult::error(msg)),
        }
    }
}

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

    fn test_config() -> (TempDir, Arc<Config>) {
        let tmp = TempDir::new().unwrap();
        let mut cfg = Config::default();

View on GitHub (pinned to 7491200858)

Solutions

  1. Pass the required "flavour" string from the tool's documented enum
  2. Check the tool call included all required fields
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/memory/tools/flavour.rs:242 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/00ef23ca51cdc58e. Report an issue: GitHub.