zeroclaw-labs/zeroclaw · error · anyhow::Error

Invalid schedule: every_ms must be > 0

Error message

Invalid schedule: every_ms must be > 0

What it means

Error "Invalid schedule: every_ms must be > 0" thrown in zeroclaw-labs/zeroclaw.

Source

Thrown at crates/zeroclaw-runtime/src/cron/schedule.rs:49

                // expectations instead of always using UTC.
                let local_from = from.with_timezone(&chrono::Local);
                let next_local = cron.after(&local_from).next().ok_or_else(|| {
                    ::zeroclaw_log::record!(
                        WARN,
                        ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Fail)
                            .with_outcome(::zeroclaw_log::EventOutcome::Failure)
                            .with_attrs(::serde_json::json!({"expr": expr})),
                        "cron schedule: no future occurrence for expression"
                    );
                    anyhow::Error::msg(format!("No future occurrence for expression: {expr}"))
                })?;
                Ok(next_local.with_timezone(&Utc))
            }
        }
        Schedule::At { at } => Ok(*at),
        Schedule::Every { every_ms } => {
            if *every_ms == 0 {
                anyhow::bail!("Invalid schedule: every_ms must be > 0");
            }
            let ms = i64::try_from(*every_ms).context("every_ms is too large")?;
            let delta = ChronoDuration::milliseconds(ms);
            from.checked_add_signed(delta).ok_or_else(|| {
                ::zeroclaw_log::record!(
                    ERROR,
                    ::zeroclaw_log::Event::new(module_path!(), ::zeroclaw_log::Action::Fail)
                        .with_outcome(::zeroclaw_log::EventOutcome::Failure)
                        .with_attrs(::serde_json::json!({"every_ms": *every_ms})),
                    "cron schedule: every_ms overflowed DateTime arithmetic"
                );
                anyhow::Error::msg("every_ms overflowed DateTime")
            })
        }
    }
}

pub fn validate_schedule(schedule: &Schedule, now: DateTime<Utc>) -> Result<()> {

View on GitHub (pinned to 88bb9c8533)

Solutions

  1. Set every_ms to a positive value greater than 0.

When it happens

Trigger: Thrown at crates/zeroclaw-runtime/src/cron/schedule.rs:49 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23). Data as JSON: /api/errors/0f70b8a652230369. Report an issue: GitHub.