tinyhumansai/openhuman · error

Invalid run_at timestamp: {e}

Error message

Invalid run_at timestamp: {e}

What it means

When creating an agent job with a 'run_at' one-shot time, the raw string is parsed with DateTime::parse_from_rfc3339; this fires when it is not RFC 3339 (missing timezone, wrong separator, relative phrases like 'tomorrow'). Nothing is scheduled.

Source

Thrown at src/openhuman/tools/impl/system/schedule.rs:312

        // ── Agent job (prompt provided) ──────────────────────────────
        if let Some(prompt_text) = prompt {
            tracing::debug!(
                action = %action,
                prompt_len = prompt_text.len(),
                "[schedule] creating agent job"
            );
            let schedule = if let Some(expr) = expression {
                Schedule::Cron {
                    expr: expr.to_string(),
                    tz: None,
                    active_hours: None,
                }
            } else if let Some(delay_str) = delay {
                let at = Utc::now() + cron::parse_human_delay(delay_str)?;
                Schedule::At { at }
            } else if let Some(at_str) = run_at {
                let at: DateTime<Utc> = DateTime::parse_from_rfc3339(at_str)
                    .map_err(|e| anyhow::anyhow!("Invalid run_at timestamp: {e}"))?
                    .with_timezone(&Utc);
                Schedule::At { at }
            } else {
                return Ok(ToolResult::error("Missing scheduling parameters"));
            };

            let name = args
                .get("name")
                .and_then(|v| v.as_str())
                .map(str::to_string)
                .or_else(|| {
                    // Derive a slug from the prompt so jobs are never unnamed.
                    Some(
                        prompt_text
                            .chars()
                            .map(|c| {
                                if c.is_alphanumeric() {
                                    c.to_ascii_lowercase()

View on GitHub (pinned to 7491200858)

Solutions

  1. Pass run_at as an RFC 3339 timestamp, e.g. 2026-09-03T09:00:00Z
  2. Use the 'delay' (duration) parameter instead for relative times
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/tools/impl/system/schedule.rs:312 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/511efa92584c79f9. Report an issue: GitHub.