tinyhumansai/openhuman · error · anyhow::Error
: {}
Error message
: {} What it means
Format fragment used by the emit! macro in task_sources tools to append the error detail after an outcome message — i.e. the '<something>: {error}' suffix on failure outcomes. It is not a standalone error; the meaningful part is the prefix the macro pairs it with.
Source
Thrown at src/openhuman/integrations/task_sources/tools.rs:61
.map(str::to_string)
}
fn parse_provider(args: &serde_json::Value) -> anyhow::Result<ProviderSlug> {
let raw = read_required_str(args, "provider")?;
ProviderSlug::parse(&raw).map_err(|e| anyhow::anyhow!("invalid provider: {e}"))
}
fn parse_filter(args: &serde_json::Value) -> anyhow::Result<FilterSpec> {
let val = args
.get("filter")
.cloned()
.ok_or_else(|| anyhow::anyhow!("missing required object argument `filter`"))?;
serde_json::from_value(val).map_err(|e| anyhow::anyhow!("invalid filter: {e}"))
}
macro_rules! emit {
($outcome:expr, $name:literal) => {{
let outcome = $outcome.map_err(|e| anyhow::anyhow!(concat!($name, ": {}"), e))?;
Ok(ToolResult::success(serde_json::to_string(&outcome.value)?))
}};
}
/// List configured external task sources.
pub struct TaskSourceListTool {
config: Arc<Config>,
}
impl TaskSourceListTool {
pub fn new(config: Arc<Config>) -> Self {
Self { config }
}
}
#[async_trait]
impl Tool for TaskSourceListTool {
fn name(&self) -> &str {View on GitHub (pinned to 7491200858)
Solutions
- Read the prefix preceding the ': ' to identify which task-source operation failed
- Fix the underlying provider/filter/target cause indicated by the appended detail
- Retry the operation if the appended detail indicates a transient failure
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/integrations/task_sources/tools.rs:61 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/9bfc6ec5f37b57ed.
Report an issue: GitHub.