{"record":{"id":"050a47bebb0dca71","repo":"NousResearch/hermes-agent","slug":"invalid-timestamp-schedule-e","errorCode":null,"errorMessage":"Invalid timestamp '{schedule}': {e}","messagePattern":"Invalid timestamp '(.+?)': (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"cron/jobs.py","lineNumber":689,"sourceCode":"            # Anchor to the CONFIGURED Hermes timezone, not the server's local\n            # timezone. The due-check (`get_due_jobs`) compares `next_run_at`\n            # against `hermes_time.now()`, which uses the configured zone. If a\n            # naive \"20:07\" were interpreted as server-local (e.g. UTC) while\n            # now() runs in Asia/Kolkata, the stored instant would land hours\n            # off from the user's wall-clock intent — far enough that one-shots\n            # never become due and recurring jobs fire at the wrong time. Using\n            # the configured zone makes \"20:07\" mean 20:07 on the same clock the\n            # scheduler checks against (#51021).\n            if dt.tzinfo is None:\n                hermes_tz = _hermes_now().tzinfo\n                dt = dt.replace(tzinfo=hermes_tz)\n            return {\n                \"kind\": \"once\",\n                \"run_at\": dt.isoformat(),\n                \"display\": f\"once at {dt.strftime('%Y-%m-%d %H:%M')}\"\n            }\n        except ValueError as e:\n            raise ValueError(f\"Invalid timestamp '{schedule}': {e}\")\n    \n    # Duration like \"30m\", \"2h\", \"1d\" → one-shot from now\n    try:\n        minutes = parse_duration(schedule)\n        run_at = _hermes_now() + timedelta(minutes=minutes)\n        return {\n            \"kind\": \"once\",\n            \"run_at\": run_at.isoformat(),\n            \"display\": f\"once in {original}\"\n        }\n    except ValueError:\n        pass\n    \n    raise ValueError(\n        f\"Invalid schedule '{original}'. Use:\\n\"\n        f\"  - Duration: '30m', '2h', '1d' (one-shot)\\n\"\n        f\"  - Interval: 'every 30m', 'every 2h' (recurring)\\n\"\n        f\"  - Cron: '0 9 * * *' (cron expression)\\n\"","sourceCodeStart":671,"sourceCodeEnd":707,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/cron/jobs.py#L671-L707","documentation":"Error \"Invalid timestamp '{schedule}': {e}\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at cron/jobs.py:689 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use an ISO timestamp like '2026-02-03T14:00:00' for one-shot schedules.","Check the timestamp is valid and in the future."],"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"}