tinyhumansai/openhuman · error · anyhow::Error

invalid group params: {e}

Error message

invalid group params: {e}

What it means

Wrapped error in the tiny.place create_group flow: the membership-policy/extra parameters extracted from tool args could not be merged into the JSON request body — {e} names the argument that failed conversion. The body is built via JSON precisely so the enum/camelCase wire format is handled by serde; a bad `policy` or similar value surfaces here.

Source

Thrown at src/openhuman/tinyplace/agent_tools/flows_write.rs:365

fn create_group_flow(args: Value) -> FlowFuture {
    Box::pin(async move {
        let name = req_str(&args, "name")?;
        log::debug!("[tinyplace][flow] create_group start name={name}");
        let client = client().await?;
        // Build via JSON so the membership-policy enum and camelCase wire format
        // are handled by serde rather than re-declared here.
        let mut body = json!({ "name": name });
        if let Some(desc) = opt_str(&args, "description") {
            body["description"] = json!(desc);
        }
        if let Some(policy) = opt_str(&args, "policy") {
            body["membershipPolicy"] = json!(policy);
        }
        if let Some(tags) = opt_str_list(&args, "tags") {
            body["tags"] = json!(tags);
        }
        let request: GroupCreateRequest = serde_json::from_value(body)
            .map_err(|e| anyhow::anyhow!("invalid group params: {e}"))?;
        match client.groups.create(request).await {
            Ok(group) => {
                let v = serde_json::to_value(group).unwrap_or(Value::Null);
                let group_id = collect_field(&v, "groupId").into_iter().next();
                let mut md = Markdown::new();
                md.heading(format!("Created group \"{name}\""));
                md.raw_section(render_json(&v));
                let suggestions = group_id
                    .map(|id| {
                        vec![Suggestion::new(
                            "Create an invite link",
                            "tinyplace_call",
                            json!({ "command": "groups_create_invite", "params": { "groupId": id } }),
                        )]
                    })
                    .unwrap_or_default();
                finish(md, &suggestions)
            }

View on GitHub (pinned to 7491200858)

Solutions

  1. Check {e} for which parameter failed
  2. Use a valid membership policy value as documented by the group API
  3. Resubmit with corrected parameters
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/tinyplace/agent_tools/flows_write.rs:365 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/eeb0b64f20493157. Report an issue: GitHub.