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
- 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.