tinyhumansai/openhuman · error

Unsupported HTTP method: {method}. Supported: GET, POST, PUT

Error message

Unsupported HTTP method: {method}. Supported: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS

What it means

validate_method uppercased the method string and found no match among the seven methods the tool maps to reqwest Method objects, so the HTTP request is rejected before any URL is contacted.

Source

Thrown at src/openhuman/tools/impl/network/http_request.rs:103

            max_response_size,
            timeout_secs,
        }
    }

    async fn validate_url(&self, raw_url: &str) -> anyhow::Result<String> {
        validate_url_with_dns_check(raw_url, &self.allowed_domains).await
    }

    fn validate_method(&self, method: &str) -> anyhow::Result<reqwest::Method> {
        match method.to_uppercase().as_str() {
            "GET" => Ok(reqwest::Method::GET),
            "POST" => Ok(reqwest::Method::POST),
            "PUT" => Ok(reqwest::Method::PUT),
            "DELETE" => Ok(reqwest::Method::DELETE),
            "PATCH" => Ok(reqwest::Method::PATCH),
            "HEAD" => Ok(reqwest::Method::HEAD),
            "OPTIONS" => Ok(reqwest::Method::OPTIONS),
            _ => anyhow::bail!("Unsupported HTTP method: {method}. Supported: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS"),
        }
    }

    fn parse_headers(&self, headers: &serde_json::Value) -> Vec<(String, String)> {
        let mut result = Vec::new();
        if let Some(obj) = headers.as_object() {
            for (key, value) in obj {
                if let Some(str_val) = value.as_str() {
                    result.push((key.clone(), str_val.to_string()));
                }
            }
        }
        result
    }

    fn redact_headers_for_display(headers: &[(String, String)]) -> Vec<(String, String)> {
        headers
            .iter()

View on GitHub (pinned to 7491200858)

Solutions

  1. Use one of GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
  2. Check the method field for typos or non-standard verbs
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/tools/impl/network/http_request.rs:103 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/392e188969bce271. Report an issue: GitHub.