tinyhumansai/openhuman · error · anyhow::Error

missing required param 'body'

Error message

missing required param 'body'

What it means

Required-parameter guard in a tinyplace flow tool's execute: the `body` argument (the post/submission content, e.g. a bounty submission) is absent from the flow args. Fires inside the FlowFuture before any SDK/network call to tiny.place, so nothing was posted; supply a non-empty body string.

Source

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

                )
            }
            Err(e) => Ok(sdk_error(&format!("Submitting to {bounty_id}"), e)),
        }
    })
}

/// Public, judge-facing web origin for tiny.place post permalinks. The SDK base
/// URL points at the backend API (e.g. `api.tiny.place`); the human/council-
/// facing site is `tiny.place` (same origin the wallet fund page uses). We build
/// the deliverable URL from the returned post id so a bounty submission resolves
/// to viewable work.
const TINYPLACE_WEB_ORIGIN: &str = "https://tiny.place";

fn post_flow(args: Value) -> FlowFuture {
    Box::pin(async move {
        let body = req_str(&args, "body")?;
        if body.trim().is_empty() {
            return Err(anyhow::anyhow!("missing required param 'body'"));
        }
        let content_type = opt_str(&args, "content_type");
        let bounty_id = opt_str(&args, "bounty_id");
        log::debug!(
            "[tinyplace][flow] post start body_len={} bounty={:?}",
            body.len(),
            bounty_id
        );
        let client = client().await?;
        // Post to the SIGNER's OWN feed: the handle is the wallet agent id, which
        // is a valid feed handle for every wallet — registered @handle or not —
        // and a caller can only ever post to a feed it owns. Mirrors the
        // `feeds_create_post` controller.
        let handle = agent_id(client)?;
        let post_create = tinyplace::types::PostCreate {
            body,
            content_type,
            post_id: None,

View on GitHub (pinned to 7491200858)

Solutions

  1. Include a non-empty `body` string in the tool call
  2. Write the deliverable content into body, then retry the submission
Defensive patterns

Strategy: validation

When it happens

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