-
-
Notifications
You must be signed in to change notification settings - Fork 69.6k
[Bug]: cron jobs can be created and delivered by CLI, but do not materialize from Telegram/WebChat conversation; exec is also unreliable from chat #50303
Description
Bug type
Behavior bug (incorrect output/state without crash)
Summary
In my self-hosted OpenClaw setup, cron works correctly from the CLI and can deliver to Telegram, but cron jobs requested from Telegram or WebChat conversation do not materialize in the real cron store. In the same installation, exec is also unreliable from conversation: sometimes it appears unavailable from chat, but gateway logs show real exec attempts in other cases.
This makes chat-based control actions (especially reminders from mobile via Telegram) unreliable, while content-oriented tools (write, web_search, web_fetch) work.
Steps to reproduce
### Relevant config
`tools`:
```json
{
"profile": "full",
"allow": ["group:web", "cron", "gateway"],
"web": {
"search": {
"enabled": true,
"provider": "brave"
},
"fetch": {
"enabled": true
}
}
}
agents.defaults:
{
"workspace": "/home/XXXXXXX/.openclaw/workspace",
"memorySearch": {
"enabled": false
},
"sandbox": {
"mode": "all",
"workspaceAccess": "rw",
"scope": "session",
"docker": {
"image": "openclaw-sandbox:bookworm-slim"
}
}
}
What works
Telegram channel works
channel status is OK
direct chat works
Web tools work from conversation
web_search
web_fetch
File writing works from conversation
notes/tasks/plans/context files are created correctly
Cron works from CLI
Example:
openclaw cron add
--name "telegram-test-reminder"
--at "2m"
--session isolated
--message "🔔 Prueba de notificaciones: si lees esto, Telegram está activo."
--announce
--channel telegram
--to "XXXXXXX"
--delete-after-run
This creates a real job, openclaw cron list shows it, and openclaw cron runs --id later reports:
status: ok
delivered: true
deliveryStatus: delivered
What fails
A) cron from conversation
From Telegram/WebChat, the agent claims it created cron jobs and even prints pseudo tool-call JSON such as:
{"tool":"cron","action":"create", ...}
But after that:
openclaw cron status
openclaw cron list
shows:
jobs: 0
No cron jobs
So the job is not materialized in the real cron store.
I also saw the agent explicitly say things like:
it “cannot execute cron directly from this environment”
it can “leave the exact CLI command” instead
This suggests the conversational runtime is not actually executing/persisting cron, even though the scheduler itself works.
B) exec from conversation is inconsistent
From chat, the agent often responds as if exec is unavailable (EXEC_UNAVAILABLE style behavior), but gateway logs also show real exec attempts in some cases, for example:
error [tools] exec failed: /bin/sh: 1: python: not found
Command not found
So exec seems to exist and sometimes run, but the conversational layer is not reliably exposing/using it.
Logs / warnings
I repeatedly saw warnings like:
tools.allow allowlist contains unknown entries (group:automation). These entries won't match any tool unless the plugin is enabled.
I then switched from:
["group:web", "group:automation"]
to:
["group:web", "cron", "gateway"]
but the behavior from conversation remained the same:
CLI cron still works
chat-created cron jobs still do not appear in openclaw cron list
Reproduction
Configure Telegram channel and verify it works.
Configure tools:
profile = full
allow includes cron and gateway
From Telegram or WebChat, ask:
“Program a reminder for 2 minutes from now”
Agent claims success and may print pseudo tool-call JSON
Immediately run:
openclaw cron list
openclaw cron status
Observe that there are no jobs
Expected behavior
When the agent says it created a cron job from conversation, a real job should exist in the cron store and appear in:
openclaw cron list
Likewise, if exec is available by policy/runtime, the conversational agent should either:
execute it reliably, or
clearly report an actual execution error from the runtime,
not behave as if the tool is unavailable while logs show occasional real attempts.
Actual behavior
CLI cron works
CLI delivery to Telegram works
conversation-based cron does not create real jobs
conversation-based exec is inconsistent/unreliable
Impact
This blocks a core mobile workflow:
using Telegram as a real control surface to:
create reminders
schedule actions
run lightweight operational commands
At the moment, Telegram works for content tasks, but not for reliable control actions.
OpenClaw version
2026.3.8
Operating system
Virtual Machine Linux (Ubuntu 22.04.5 LTS VM)
Install method
host install (gateway on host), Docker sandbox enabled
Model
openai-codex/gpt-5.3-codex
Provider / routing chain
openai-codex
Additional provider/model setup details
- Channel tested: Telegram + WebChat dashboard
- Gateway bind: loopback
- Sandbox mode:
all - Workspace:
~/.openclaw/workspace
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
No response