Skip to content

[Bug]: Cron tool not registered — "Tool not available: cron" (v2026.2.23) #25656

@aaajiao

Description

@aaajiao

Summary

The cron agent tool is not registered in the gateway tool registry. HTTP /tools/invoke returns "Tool not available: cron". The tool never appears in the model's tool definitions, despite passing sandbox policy.

The cron scheduler works fine — openclaw cron add/list via CLI works, jobs fire on schedule, delivery works. Only the agent-facing tool definition is missing.

openclaw sandbox explain confirms cron is in the allow list. No errors in gateway startup logs — the tool is silently absent.

Steps to reproduce

  1. Config: cron.enabled: true, tools.sandbox.tools.allow includes "cron"
  2. openclaw gateway restart
  3. Start a new session (/new)
  4. openclaw sandbox explain --session agent:main:main → cron in allow list ✅
  5. Agent tool list does NOT include cron
  6. HTTP API confirms:

curl -sS http://127.0.0.1:18789/tools/invoke
-H "Authorization: Bearer $TOKEN"
-H 'Content-Type: application/json'
-d '{"tool": "cron", "action": "list", "args": {}}'

Response: {"ok":false,"error":{"type":"not_found","message":"Tool not available: cron"}}

Expected behavior

The cron tool should be registered in the gateway tool registry and injected into the model's tool definitions, allowing the agent to manage cron jobs directly.

Actual behavior

  • Cron scheduler starts normally (logs: "cron: started, enabled: true, jobs: 1")
  • CLI openclaw cron add/list/run works
  • Sandbox policy allows cron
  • But the tool definition is never registered — HTTP API returns 404, model never receives the tool
  • No errors or warnings in gateway logs about tool registration

OpenClaw version

OpenClaw version: 2026.2.23 (b817600)

Operating system

OS: Ubuntu (OrbStack VM on macOS, arm64)

Install method

Node.js: 22.22.0

Logs, screenshots, and evidence

# Gateway startup logs (filtered):
2026-02-24T17:23:26.083Z info cron {"module":"cron"} {"enabled":true,"jobs":1,"nextWakeAtMs":1772355600000} cron: started

# sandbox explain output:
allow (global): exec, process, read, write, edit, apply_patch, sessions_list, sessions_history, sessions_send, sessions_spawn, subagents, session_status, browser, canvas, cron, memory_search, memory_get, web_search, web_fetch, image
deny (global): canvas, nodes, gateway, telegram, whatsapp, discord, googlechat, slack, signal, imessage

# No cron tool registration logs found. No errors.

Impact and severity

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions