Problem
OpenClaw pod-origin invocations scheduled through claw-api still fail in live desks even after the cron store path/schema fix from #132.
The current implementation assumes this contract:
- Clawdapus writes pod-origin OpenClaw jobs into
config/cron/jobs.json
- those jobs are compiled with
enabled: false
claw-api wakes them with openclaw cron run <id>
claw-api treats the wake as a blocking command with a 30s timeout
Live evidence shows two integration problems:
- OpenClaw rejects
cron run <id> for pod-origin jobs in the state Clawdapus currently compiles, returning unknown cron job id.
- Once a job is made runnable, OpenClaw startup/turn execution can exceed the scheduler's fixed 30s exec timeout, causing the scheduler to record a wake failure even when the runner is still working.
Why this is Clawdapus work
This is not just an OpenClaw core issue. The break is in the Clawdapus/OpenClaw driver + scheduler contract. We picked a Pattern-B wake design (disabled registration + cron run) without locking it against real runner behavior, and we hard-coded a blocking wake timeout that is too aggressive for OpenClaw.
Scope
- Fix the OpenClaw wake path for pod-origin externally scheduled invocations.
- Preserve
claw-api as the timing authority for pod-origin x-claw.invoke.
- Add regression coverage that proves a pod-origin OpenClaw invocation can be fired successfully after
claw up.
- Revisit scheduler timeout semantics for OpenClaw wakes so slow startup does not look like a failed fire.
Likely approach
- Move OpenClaw pod-origin wakes away from the current
enabled: false + openclaw cron run <id> assumption.
- Prefer a direct wake path through
openclaw agent ... if that keeps scheduler ownership intact and supports the needed routing flags.
- Make wake timeout behavior adapter-aware or otherwise stop treating a long-running OpenClaw startup as an immediate failure.
Likely files
cmd/claw/schedule_manifest.go
cmd/claw/schedule_manifest_test.go
cmd/claw-api/scheduler.go
internal/driver/openclaw/jobs.go
internal/driver/openclaw/jobs_test.go
cmd/claw/spike_test.go
Verification
go test ./internal/driver/openclaw ./cmd/claw ./cmd/claw-api
- spike or live-style coverage that proves an OpenClaw pod-origin wake succeeds and does not degrade the schedule due to an artificial timeout
Problem
OpenClaw pod-origin invocations scheduled through
claw-apistill fail in live desks even after the cron store path/schema fix from #132.The current implementation assumes this contract:
config/cron/jobs.jsonenabled: falseclaw-apiwakes them withopenclaw cron run <id>claw-apitreats the wake as a blocking command with a 30s timeoutLive evidence shows two integration problems:
cron run <id>for pod-origin jobs in the state Clawdapus currently compiles, returningunknown cron job id.Why this is Clawdapus work
This is not just an OpenClaw core issue. The break is in the Clawdapus/OpenClaw driver + scheduler contract. We picked a Pattern-B wake design (
disabled registration + cron run) without locking it against real runner behavior, and we hard-coded a blocking wake timeout that is too aggressive for OpenClaw.Scope
claw-apias the timing authority for pod-originx-claw.invoke.claw up.Likely approach
enabled: false+openclaw cron run <id>assumption.openclaw agent ...if that keeps scheduler ownership intact and supports the needed routing flags.Likely files
cmd/claw/schedule_manifest.gocmd/claw/schedule_manifest_test.gocmd/claw-api/scheduler.gointernal/driver/openclaw/jobs.gointernal/driver/openclaw/jobs_test.gocmd/claw/spike_test.goVerification
go test ./internal/driver/openclaw ./cmd/claw ./cmd/claw-api