tinyhumansai/openhuman · error · anyhow::Error

title is required

Error message

title is required

What it means

create_channel_thread trims the proposed title and found it empty; threads require a non-empty name, so the request is rejected before the backend is called.

Source

Thrown at src/api/rest.rs:1058

        self.authed_json(
            bearer_jwt,
            Method::POST,
            &format!("channels/{encoded}/reactions"),
            Some(reaction_body),
        )
        .await
    }

    /// Creates a new thread in a communication channel.
    pub async fn create_channel_thread(
        &self,
        channel: &str,
        bearer_jwt: &str,
        title: &str,
    ) -> Result<Value> {
        let channel = channel.trim().trim_matches('/');
        anyhow::ensure!(!channel.is_empty(), "channel is required");
        anyhow::ensure!(!title.trim().is_empty(), "title is required");
        let encoded = urlencoding::encode(channel);
        let body = serde_json::json!({ "title": title.trim() });
        self.authed_json(
            bearer_jwt,
            Method::POST,
            &format!("channels/{encoded}/threads"),
            Some(body),
        )
        .await
    }

    /// Updates an existing thread (e.g., closing or reopening it).
    pub async fn update_channel_thread(
        &self,
        channel: &str,
        bearer_jwt: &str,
        thread_id: &str,
        action: &str,

View on GitHub (pinned to 7491200858)

Solutions

  1. Provide a non-empty title string
  2. Check that the title argument is not only whitespace
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/api/rest.rs:1058 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/068425c3b0d46c5e. Report an issue: GitHub.