NousResearch/hermes-agent · error · ValueError

Requested one-shot time {run_at} is in the past (grace windo

Error message

Requested one-shot time {run_at} is in the past (grace window: {ONESHOT_GRACE_SECONDS}s) and cannot be scheduled.

What it means

Error "Requested one-shot time {run_at} is in the past (grace window: {ONESHOT_GRACE_SECONDS}s) and cannot be scheduled." thrown in NousResearch/hermes-agent.

Source

Thrown at cron/jobs.py:1972

                            f"{ONESHOT_GRACE_SECONDS}s in the past and cannot be scheduled."
                        )
                    updated["next_run_at"] = updated_next_run

            if inference_fields_changed:
                provider_snapshot, model_snapshot = _compute_provider_model_snapshots(
                    provider=updated.get("provider"),
                    model=updated.get("model"),
                    base_url=updated.get("base_url"),
                    no_agent=updated.get("no_agent"),
                )
                updated["provider_snapshot"] = provider_snapshot
                updated["model_snapshot"] = model_snapshot

            if updated.get("enabled", True) and updated.get("state") != "paused" and not updated.get("next_run_at"):
                next_run = compute_next_run(updated["schedule"])
                if next_run is None and updated["schedule"].get("kind") == "once":
                    run_at = updated["schedule"].get("run_at", "unknown")
                    raise ValueError(
                        f"Requested one-shot time {run_at} is in the past "
                        f"(grace window: {ONESHOT_GRACE_SECONDS}s) and cannot be scheduled."
                    )
                updated["next_run_at"] = next_run

            jobs[i] = updated
            save_jobs(jobs)
            return _normalize_job_record(jobs[i])
    return None


def pause_job(job_id: str, reason: Optional[str] = None) -> Optional[Dict[str, Any]]:
    """Pause a job without deleting it. Accepts a job ID or name."""
    job = resolve_job_ref(job_id)
    if not job:
        return None
    return update_job(
        job["id"],

View on GitHub (pinned to c896c09c42)

Solutions

  1. Schedule the one-shot at a future time (within the grace window).

When it happens

Trigger: Thrown at cron/jobs.py:1972 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14). Data as JSON: /api/errors/1e7d2b4bac603caf. Report an issue: GitHub.