Skip to content

[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

@anakkletto

Description

@anakkletto

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingbug:behaviorIncorrect behavior without a crash

    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