tinyhumansai/openhuman · error
todo_add: {e}
Error message
todo_add: {e} What it means
Generic wrapper from todo_add: adding a card to the board failed after 'content' and the optional card patch parsed. The underlying {e} is the ops::add error — usually a malformed patch field or a board persistence failure.
Source
Thrown at src/openhuman/threads/todos/tools.rs:202
"notes": { "type": "string" },
"blocker": { "type": "string" }
},
"required": ["content"]
})
}
fn permission_level(&self) -> PermissionLevel {
PermissionLevel::Write
}
async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
log::debug!("[tool][todos] add invoked");
let content = read_required_str(&args, "content")?;
let location = board_location(&self.config, &args);
let patch = card_patch(&args)?;
let snapshot = ops::add(&location, &content, patch)
.await
.map_err(|e| anyhow::anyhow!("todo_add: {e}"))?;
snapshot_to_result(snapshot)
}
}
/// Edit an existing card (partial update).
pub struct TodoEditTool {
config: Arc<Config>,
}
impl TodoEditTool {
pub fn new(config: Arc<Config>) -> Self {
Self { config }
}
}
#[async_trait]
impl Tool for TodoEditTool {
fn name(&self) -> &str {View on GitHub (pinned to 7491200858)
Solutions
- Inspect {e} for which optional field (status, objective, notes, ...) was invalid
- Ensure status values match the allowed set when provided
- Retry on transient persistence errors
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at src/openhuman/threads/todos/tools.rs:202 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/89a31bb523894eea.
Report an issue: GitHub.