tinyhumansai/openhuman · error

todo_edit: {e}

Error message

todo_edit: {e}

What it means

Generic wrapper from todo_edit: updating the card with the given id failed. The underlying {e} is the ops::edit error — most often the card id does not exist on the board, or a patch field was invalid.

Source

Thrown at src/openhuman/threads/todos/tools.rs:262

                "notes": { "type": "string" },
                "blocker": { "type": "string" }
            },
            "required": ["id"]
        })
    }

    fn permission_level(&self) -> PermissionLevel {
        PermissionLevel::Write
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][todos] edit invoked");
        let id = read_required_str(&args, "id")?;
        let location = board_location(&self.config, &args);
        let patch = card_patch(&args)?;
        let snapshot = ops::edit(&location, &id, patch)
            .await
            .map_err(|e| anyhow::anyhow!("todo_edit: {e}"))?;
        snapshot_to_result(snapshot)
    }
}

/// Transition a card's status.
pub struct TodoUpdateStatusTool {
    config: Arc<Config>,
}

impl TodoUpdateStatusTool {
    pub fn new(config: Arc<Config>) -> Self {
        Self { config }
    }
}

#[async_trait]
impl Tool for TodoUpdateStatusTool {
    fn name(&self) -> &str {

View on GitHub (pinned to 7491200858)

Solutions

  1. List the board first and copy the card id exactly
  2. Check {e} for which patch field was rejected
  3. Verify the card belongs to the same thread/scratch location being edited
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at src/openhuman/threads/todos/tools.rs:262 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/e771dad44c259956. Report an issue: GitHub.