hermes - 💡(How to fix) Fix [Bug] `hermes cron edit <id> --profile <name>` returns "Job not found" for existing jobs

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

hermes cron edit <job_id> --profile <profile_name> (and likely any hermes cron edit invocation against a job that exists) prints Job not found: <id> and exits non-zero, even when hermes cron list clearly shows the job exists in the default profile's ~/.hermes/cron/jobs.json.

This blocks setting the profile pin field on an existing cron via the CLI — the only documented workaround in #25290 / per the cron docs is to use cron edit --profile, which is itself broken.

Root Cause

hermes cron edit <job_id> --profile <profile_name> (and likely any hermes cron edit invocation against a job that exists) prints Job not found: <id> and exits non-zero, even when hermes cron list clearly shows the job exists in the default profile's ~/.hermes/cron/jobs.json.

This blocks setting the profile pin field on an existing cron via the CLI — the only documented workaround in #25290 / per the cron docs is to use cron edit --profile, which is itself broken.

Fix Action

Workaround

Direct-edit ~/.hermes/cron/jobs.json to set "profile": "<name>" on the target job, then systemctl restart hermes-gateway. Confirmed this works — the scheduler honors the pin and runs the job under the pinned profile's HERMES_HOME at fire time.

Code Example

# Create cron in default profile (no --profile flag)
hermes cron create --name oracle-nightly-dream "0 3 * * *" "..." 
# → Created job: 80d4433fc4f2

# Confirm it exists
hermes cron list
# → shows 80d4433fc4f2 [active] oracle-nightly-dream

# Attempt to add a profile pin
hermes cron edit 80d4433fc4f2 --profile oracle
# → Job not found: 80d4433fc4f2

# Verify the file actually has the job
cat ~/.hermes/cron/jobs.json | jq '.jobs[].id'
# → "80d4433fc4f2"
RAW_BUFFERClick to expand / collapse

Summary

hermes cron edit <job_id> --profile <profile_name> (and likely any hermes cron edit invocation against a job that exists) prints Job not found: <id> and exits non-zero, even when hermes cron list clearly shows the job exists in the default profile's ~/.hermes/cron/jobs.json.

This blocks setting the profile pin field on an existing cron via the CLI — the only documented workaround in #25290 / per the cron docs is to use cron edit --profile, which is itself broken.

Repro (Hermes installed via official installer; Debian 12 LXC)

# Create cron in default profile (no --profile flag)
hermes cron create --name oracle-nightly-dream "0 3 * * *" "..." 
# → Created job: 80d4433fc4f2

# Confirm it exists
hermes cron list
# → shows 80d4433fc4f2 [active] oracle-nightly-dream

# Attempt to add a profile pin
hermes cron edit 80d4433fc4f2 --profile oracle
# → Job not found: 80d4433fc4f2

# Verify the file actually has the job
cat ~/.hermes/cron/jobs.json | jq '.jobs[].id'
# → "80d4433fc4f2"

Restarting the gateway between create and edit does not change the behavior.

Workaround

Direct-edit ~/.hermes/cron/jobs.json to set "profile": "<name>" on the target job, then systemctl restart hermes-gateway. Confirmed this works — the scheduler honors the pin and runs the job under the pinned profile's HERMES_HOME at fire time.

Impact

Per the cron docs (/docs/user-guide/features/cron § "Running cron jobs in a specific profile"), --profile <name> on cron edit is the documented way to add/change a profile pin on an existing job. With this broken, users have to drop into raw JSON editing.

Environment

  • Hermes installed via official curl ... | bash installer
  • Single-user setup, default profile = Ethel, three Pantheon-style cloned profiles (mercury / labyrinth / oracle)
  • inherit_mcp_toolsets: true, MCP server zapier configured in default profile only
  • Debian 12 LXC on Proxmox

Related: #25290 (cron jobs split across profile directories — same family of profile-context-vs-pin confusion).

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING