tinyhumansai/openhuman · error · anyhow::Error
missing required object argument `payload`
Error message
missing required object argument `payload`
What it means
A billing webhook/mutator tool requiring a `payload` object was invoked without it (missing, or the cloned value absent). Guard before the external-effect call; the payload shape beyond `object` is validated downstream by the domain/backend.
Source
Thrown at src/openhuman/hosted/billing/tools.rs:470
}
fn parameters_schema(&self) -> serde_json::Value {
json!({
"type": "object",
"properties": { "payload": { "type": "object" } },
"required": ["payload"]
})
}
fn permission_level(&self) -> PermissionLevel {
PermissionLevel::Write
}
fn external_effect(&self) -> bool {
true
}
async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
let payload = args
.get("payload")
.cloned()
.ok_or_else(|| anyhow::anyhow!("missing required object argument `payload`"))?;
emit!(
billing::update_auto_recharge(&self.config, payload).await,
"billing_update_auto_recharge"
)
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::openhuman::tools::traits::ToolScope;
fn cfg() -> Arc<Config> {
Arc::new(Config::default())
}
#[test]
fn names_and_levels() {View on GitHub (pinned to 7491200858)
Solutions
- Include `payload` as a JSON object with the fields the billing endpoint expects
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/hosted/billing/tools.rs:470 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/edd80415b6f5c481.
Report an issue: GitHub.