Skip to content

Cron jobs created via CLI silently fail to fire — profile fragmentation #25295

@fwends

Description

@fwends

Hermes version: v0.13.0 (2026.5.7)
Profile: kimicoder (gateway active)
Platform: macOS

Problem

Cron jobs created via hermes cron create CLI do not fire even though they appear in hermes cron list.

Root Cause

Hermes uses two different cron job storage locations depending on the profile:

  • ~/.hermes/cron/jobs.json — default/CLI profile (14 jobs)
  • ~/.hermes/profiles/kimicoder/cron/jobs.json — gateway's active profile (2 jobs)

The gateway runs as profile kimicoder and only reads from its own profile directory. The CLI uses the default profile. These files are never synced. Jobs created via CLI exist on disk but the gateway never sees them.

Symptoms

  1. hermes cron list shows a cron job (reads from default profile)
  2. The cron never fires (gateway doesn't read that file)
  3. No error is logged — the job is silently ignored
  4. The dashboard at http://127.0.0.1:9000/cron creates crons in the gateway's profile directory correctly, but CLI-created crons go to the wrong place

Verification

# CLI profile (gateway ignores this)
cat ~/.hermes/cron/jobs.json | python3 -m json.tool | grep '"name"' | wc -l
# → 14 jobs

# Gateway profile (only these actually fire)
cat ~/.hermes/profiles/kimicoder/cron/jobs.json | python3 -m json.tool | grep '"name"' | wc -l
# → 2 jobs

# Active gateway profile
hermes profile list
# ◆ kimicoder

Expected Behavior

All cron jobs should be in a single shared location that both CLI and gateway read. Or the CLI should create crons in the active gateway profile's directory.

Impact

  • All cron jobs created via hermes cron create CLI silently fail to fire
  • Users have no indication their jobs are being ignored
  • Dashboard UI works correctly (creates in gateway profile), CLI does not

Suggested Fix

  1. hermes cron create should write to the active gateway profile's cron/jobs.json, not the default profile's
  2. OR consolidate to a single ~/.hermes/cron/jobs.json that both CLI and gateway share
  3. OR at minimum, warn users when their CLI-created crons won't fire due to profile mismatch

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High — major feature broken, no workaroundarea/configConfig system, migrations, profilescomp/cliCLI entry point, hermes_cli/, setup wizardcomp/cronCron scheduler and job managementtype/bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions