{"record":{"id":"04439d04e21babfd","repo":"NousResearch/hermes-agent","slug":"monitor-script-monitor-url-cannot-be-combined-with","errorCode":null,"errorMessage":"monitor_script/monitor_url cannot be combined with no_agent=True — the whole point of a monitor job is to suppress or wake the AGENT based on source changes. Use a plain no_agent script job instead.","messagePattern":"monitor_script/monitor_url cannot be combined with no_agent=True — the whole point of a monitor job is to suppress or wake the AGENT based on source changes\\. Use a plain no_agent script job instead\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"cron/jobs.py","lineNumber":1557,"sourceCode":"def _validate_job_mode_invariants(\n    monitor_script: Optional[str],\n    monitor_url: Optional[str],\n    no_agent: bool,\n    script: Optional[str],\n) -> None:\n    \"\"\"Shared create/update validation for job execution-mode invariants.\n\n    ONE owner for the class: create_job and update_job both call this so an\n    invariant enforced at create time cannot be violated through the update\n    door (monitor jobs silently degrading when no_agent is flipped on, etc.).\n    \"\"\"\n    if monitor_script and monitor_url:\n        raise ValueError(\n            \"monitor_script and monitor_url are mutually exclusive — a job \"\n            \"can only have one monitor source.\"\n        )\n    if (monitor_script or monitor_url) and no_agent:\n        raise ValueError(\n            \"monitor_script/monitor_url cannot be combined with no_agent=True — \"\n            \"the whole point of a monitor job is to suppress or wake the AGENT \"\n            \"based on source changes. Use a plain no_agent script job instead.\"\n        )\n    if no_agent and not script:\n        raise ValueError(\n            \"no_agent=True requires a script — with no agent and no script \"\n            \"there is nothing for the job to run.\"\n        )\n\n\ndef create_job(\n    prompt: Optional[str],\n    schedule: str,\n    name: Optional[str] = None,\n    repeat: Optional[int] = None,\n    deliver: Optional[str] = None,\n    origin: Optional[Dict[str, Any]] = None,","sourceCodeStart":1539,"sourceCodeEnd":1575,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/cron/jobs.py#L1539-L1575","documentation":"Error \"monitor_script/monitor_url cannot be combined with no_agent=True — the whole point of a monitor job is to suppress or wake the AGENT based on source changes. Use a plain no_agent script job instead.\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at cron/jobs.py:1557 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove no_agent=True, or drop the monitor fields and use a plain script job."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c896c09c42910c584c4c7d2325b58c14713ea42c","analyzedAt":"2026-08-14T17:18:01.089Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}